一個Mysql(5.5版本)設置多個端口運行多個實例。搞了一天,終於弄好,先備忘一下!
java
1、設置mysqld_multimysql
複製一份my.cnf,重命名爲my_multi.cnfsql
修改my_multi.cnf,主要配置項目以下
數據庫
[mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin user = root password = 123 #默認的3306端口 [mysqld6] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp #加一個3308的端口 [mysqld8] user = mysql pid-file = /var/run/mysqld/mysqld8.pid socket = /var/run/mysqld/mysqld8.sock port = 3308 basedir = /usr datadir = /var/lib/mysql8 tmpdir = /tmp
2、建立3308端口的數據存儲目錄app
mkdir /var/lib/mysql8 chown mysql:mysql /var/lib/mysql8
3、修改文件/etc/apparmor.d/usr.sbin.mysqldsocket
修改完成後重啓:/etc/init.d/apparmor restarttcp
/usr/sbin/mysqld { #include <abstractions/base> #include <abstractions/nameservice> #include <abstractions/user-tmp> #include <abstractions/mysql> #include <abstractions/winbind> capability dac_override, capability sys_resource, capability setgid, capability setuid, network tcp, /etc/hosts.allow r, /etc/hosts.deny r, /etc/mysql/*.pem r, /etc/mysql/conf.d/ r, /etc/mysql/conf.d/* r, /etc/mysql/*.cnf r, /usr/lib/mysql/plugin/ r, /usr/lib/mysql/plugin/*.so* mr, /usr/sbin/mysqld mr, /usr/share/mysql/** r, /var/log/mysql.log rw, /var/log/mysql.err rw, /var/lib/mysql/ r, /var/lib/mysql/** rwk, /var/log/mysql/ r, /var/log/mysql/* rw, /var/run/mysqld/mysqld.pid rw, /var/run/mysqld/mysqld.sock w, /run/mysqld/mysqld.pid rw, /run/mysqld/mysqld.sock w, #####主要是添加這些讀寫權限信息,否則下一步驟初始化數據庫時會報無權限錯誤 /var/lib/mysql8/ r, /var/lib/mysql8/** rwk, /var/run/mysqld/mysqld8.pid rw, /var/run/mysqld/mysqld8.sock w, /run/mysqld/mysqld8.pid rw, /run/mysqld/mysqld8.sock w, /sys/devices/system/cpu/ r, # Site-specific additions and overrides. See local/README for details. #include <local/usr.sbin.mysqld> }
4、初始化數據庫ide
mysql_install_db --user=mysql --datadir=/var/lib/mysql8 &
5、重啓數據庫(默認打開3306端口的數據庫)ui
service mysql restart
6、打開3308端口的數據庫spa
mysqld_multi --defaults-file=/etc/mysql/my_multi.cnf start 8
7、完事,能夠查看下了
netstat -ntlp
終於看到可喜的結果以下!
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1402/mysqld tcp 0 0 127.0.0.1:3308 0.0.0.0:* LISTEN 2202/mysqld
啓動:mysqld_multi --defaults-file=/etc/mysql/my_multi.cnf start 8
登錄:mysql -S /var/run/mysqld/mysq8.sock -P 3308
關閉:mysqladmin -uroot -S /var/run/mysqld/mysqld8.sock shutdown -p