在同一台LINUX服务器上采用tar.gz源码方式安装5.7和5.6版本mysql数据库,并进行数据库初始化,root密码重置及分配外网访问权限,具体操作步骤不在此赘述
1、其中5.7版本默认目录是/dml/mysql57 默认数据文件是/dml/mysql57/data
5.6版本数据库默认目录是 /report/mysql56,默认数据文件是 /report/mysql56/data
2、将5.7版本bin目录下的
cp mysql.server /etc/init.d/mysql57
将5.6版本bin目录下的
cp mysql.server /etc/init.d/mysql56
同时更改mysql57 的basedir 值为/dml/mysql57 和datadir默认数据文件为/dml/mysql57/data
更改mysql56文件中basedir 值为/report/mysql56,默认数据文件是 /report/mysql56/data
3、不要在/etc/目录下创建my.cnf
分别在base目录下创建my.cnf
其中在/dml/mysql57目录下创建my.cnf ,内容如下:
[mysqld]
#skip-grant-tables
basedir= /dml/mysql57
datadir = /dml/mysql57/data
port = 3308
socket = /dml/mysql57/mysql.sock
pid-file = /dml/mysql57/data/mysql57.pid
[client]
socket = /dml/mysql57/mysql.sock
#不区分大小写
lower_case_table_names = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
其中在/report/mysql56目录下创建my.cnf ,内容如下:
[mysqld]
#skip-grant-tables
basedir= /report/mysql56
datadir = /report/mysql56/data
port = 3307
socket = /report/mysql56/mysql.sock
pid-file = /report/mysql56/data/mysql56.pid
[client]
socket = /report/mysql56/mysql.sock
#不区分大小写
lower_case_table_names = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
4启动数据库有两种方式
方式1:service mysql57 start
service mysql56 start
方式2:使用mysqld_safe启动时指定启动参数文件
mysqld_safe --defaults-file=/dml/mysql57/etc/my.cnf --user=root &
mysqld_safe --defaults-file=/report/mysql56/etc/my.cnf --user=root &
方式2如果报找不到mysqld_safe文件,就拷贝一份到提示的错误目录下就可以。主要拷贝mysqld 和mysqld_safe两个文件。
如果启动时报错如下:
[root@mysql03 mysql57]# service mysql57 start
Starting MySQL… ERROR! The server quit without updating PID file (/dml/mysql57/data/mysql03.pid).
一般是由于权限原因导致,chown -R mysql.mysql /dml
chmod -R 777 /dml/mysql57/data
启动成功后,使用netstat -nltp 或者ps -ef |grep mysql确认是否成功
如果本机登录报错如下
[root@mysql03 mysql57]# mysql -uroot -p -P3307
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
管理的话,在本地都是采用 -S /report/mysql56/mysql.sock,如果在远程可以通过不同的端口连接上去坐管理操作。其他的和单实例的管理没什么区别!
[root@mysql03 mysql57]# mysql -uroot -p -P3307 -S /report/mysql56/mysql.sock