一台服务器上启动多个mysql。
前提是已经安装好了mysql。
创建/var/lib/mysql3307/my3307.cnf:
[root@localhost etc]# cp my.cnf /var/lib/mysql3307/
位于/var/lib/mysql3307下的my3307.cnf的文件内容(没有的,需要先创建):
socket=/var/lib/mysql3307/mysql3307.sock
datadir=/var/lib/mysql3307/data;
log-error=/var/log/mysqld3307.log
pid-file=/var/run/mysqld3307/mysqld3307.pid
初始化mysql:
[root@localhost /]# chown -R mysql:mysql /var/lib
[root@localhost /]# chown -R mysql:mysql /var/log
[root@localhost /]# chown -R mysql:mysql /var/run
[root@localhost /]# cd /usr/sbin
[root@localhost sbin]# ./mysqld --defaults-file=/var/lib/mysql3307/my3307.cnf --initialize-insecure --user=root
这时候登录MySQL是不需要密码的。
启动MySQL命令(进入到mysqld脚本所在的目录下):
./mysqld --defaults-file=/var/lib/mysql3307/my3307.cnf --pid-file=/var/run/mysqld3307/mysqld3307.pid --user=root
执行上述命令后,可能出现没反应的现象,这时候我们等待3-5分钟后重新打开一个shell窗口,执行登录mysql的命令。
登录mysql命令:
[root@localhost mysql]# mysql -uroot -p -S /var/lib/mysql3307/mysql3307.sock
修改root密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql password';
允许远程访问:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'mysql password' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
关闭mysql:
[root@localhost /]# cd /usr/bin/
[root@localhost bin]# ./mysqladmin -uroot -p -S /var/lib/mysql3307/mysql3307.sock shutdown