mysql多實例配置方案:mysql
方案一(多配置文件,多啓動程序):sql
mkdir /data/3306/{data,tmp,log} touch my.cnf
服務文件mysql改一下端口bash
(1)安裝依賴ncurses-devel libaio-develsocket
(2)配置文件示例ide
[client] port=3306 socket=/data/3306/mysql.sock [mysql] no-auto-rehash [mysqld] user=mysql port=3306 socket=/data/3306/mysql.sock basedir=/usr/local/mysql datadir=/data/3306/data open_files_limit=1024 back_log=600 log-error=/data/3306/log/error.log slow_query_log=on slow_query_log_file=/data/3306/log/slow.log pid-file=/data/3306/mysql.pid log-bin=/data/3306/log/mysql-bin server-id=1 [mysqld_safe] log-error=/data/3306/log/error.log pid-file=/data/3306/mysql.pid
(3)初始化spa
chown -R mysql:mysql /data mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data #新版本建議使用mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql 在初始化時若是--initialize改成--initialize-insecure,則會建立空密碼的 root@localhost 帳號,不然會建立帶密碼的 root@localhost 帳號 建立出日誌文件並更改權限。
(4)多實例啓動日誌
mysqld_safe --defaults-file=/data/3306/my.cnf &>/dev/null &server
或使用複製過來的mysql啓動hash
登錄:mysql -S /data/3306/mysql.sockit
多實例中止
mysqladmin -u root -p"password" -S /data/3306/mysql.sock shutdown
方案二:單一配置文件
(1) 配置文件my_multi.cnf示例
[mysqld_multi] mysqld=/usr/bin/mysqld_safe mysqladmin=/usr/bin/mysqladmin user=mysql [mysqld1] socket=/var/lib/mysql/mysql.sock port=3306 pid-file=/var/lib/mysql/mysql.pid datadir=/var/lib/mysql user=mysql [mysqld2] socket=/data/3307/mysql.sock port=3307 pid-file=/data/3307/mysql.pid datadir=/data/3307/data user=mysql server-id=10 defautlt-storage-engine=innodb [mysqld3]...
(2)啓動方法
mysqld_multi --config-file=/data/mysql/my_multi.cnf {start|stop|report} 1,2,3,4-6,7