在测试环境中,为了节约资源,大部分会选择一台服务器上安装多台msyql,既不影响正常使用,也可以节约资源,一举两得
一:创建mysql编译目录
groupadd mysql
useradd -s /sbin/nologin -M -g mysql # -M不建立家目录 /home/mysql
mkdir /opt/mysql3307 #mysql安装目录
mkdir /opt/mysql3307/data #mysql数据库文件存放目录
mkdir /opt/mysql3307/tmp #socket文件目录
chown -R mysql:mysql /opt/mysql3307
二:mysql的源码编译
yum install -y cmake
yum install -y ncurses-devel
tar xvf mysql-5.6.tar.gz
cd mysql-5.6
rm CMakeCache.txt #若之前执行过cmake,可删除该文件重新执行cmake
注意:sock的路径可以改,但是文件名必须是mysql.sock,改成mysql3307.sock之后,数据库无法启动(经过多次安装测试所得)
cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql3307 -DMYSQL_UNIX_ADDR=/opt/mysql3307/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/opt/mysql3307/data -DMYSQL_TCP_PORT=3307 -DMYSQL_USER=mysql
make
make install
三:编译完成后,安装数据库
cd /opt/mysql3307
#cp support-files/my-medium.cnf ./my.cnf 执行mysql_install_db时会自动生成my.cnf文件,默认在/etc目录下,非必要
数据库初始化
./scripts/mysql_install_db --user=mysql --basedir=/opt/mysql3307 --datadir=/opt/mysql3307/data
./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql3307 --datadir=/opt/mysql3307/data 5.7以上使用该命令初始化
四:修改my.conf配置文件
[mysqld]
datadir=/opt/mysql3307/data
socket=/opt/mysql3307/tmp/mysql.sock
五:配置自启动
#将mysql的启动服务添加到系统服务中
# cp support-files/mysql.server /etc/init.d/mysql3307.server
开机自启动:(chkconfig 命令redhat系统的,其他系统可能没有,具体再扯对应系统解决方案)
赋予执行权限:chmod +x /etc/init.d/mysql3307.server
添加服务:chkconfig --add mysql3307.server
显示服务列表:chkconfig --list
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig --level 345 mysql3307.server on
六:编辑mysql3307.server:
basedir=/opt/mysql3307
datadir=/opt/mysql3307/data
#conf=/etc/my.cnf 默认配置文件
conf=/opt/mysql3307/my.cnf
七:启动mysql数据库
方式一:启动3307数据库
/opt/mysql3307/bin/mysqld_safe # 若没有启动参数,则使用cmake时的参数 --datadir=/opt/mysql3307/data -- socket=/opt/mysql3307/mysql.sock \
--pid-file=/opt/mysql3307/mysqld3307.pid \
--log-error=/var/log/mysqld3307.log \
--basedir=/opt/mysql3307 --user=mysql --port=3307 &
方式二:
#现在可以使用下面的命令启动mysql
# service mysql3307.server start
# #停止mysql服务
# service mysql3307.server stop
# #重启mysql服务
# service mysql3307.server restart
无密码启动
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
八:登录数据库
#mysql -u root --socket=/opt/mysql3307/mysql.sock --port=3307 -p
因为两个数据库,需要置顶socket进行启动。第一次登陆没有密码,直接回车即可。
停止3307数据库
#mysqladmin -u root --socket=/var/lib/mysql3307/mysql.sock --port=3307 -p shutdown
九:修改root密码
mysql> use mysql;
mysql> update user set password=password('root123') where user='root';
mysql> FLUSH PRIVILEGES;
十:修改主机访问权限(可选)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'root123' WI
TH GRANT OPTION;
FLUSH PRIVILEGES;