来自网络,感谢开源,感谢分享
通过rpm安装mysql,测试版本5.1.48
1、在linux下通过:
#useradd multi -g mysql -s /sbin/nologin 添加一个multi用户,并加入到mysql组
#passwd multi 给multi用户添加密码,这里设置的密码为multi
2、拷贝数据文件:
rpm安装mysql默认datadir为/var/lib/mysql (同时启动两个mysql,拷贝2份数据文件)
#cp -R /var/lib/mysql /var/lib/mysql1
#cp -R /var/lib/mysql /var/lib/mysql2
3、修改权限
#chmod -R 777 /var/lib/mysql1
#chmod -R 777 /var/lib/mysql2
4、设置my.cnf
My.cnf 如下:
# This file should probably be in your home dir (~/.my.cnf)
# or /etc/my.cnf
# Version 2.1 by Jani Tolonen
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = multi
password = multi
[mysqld1]
socket = /tmp/mysql.sock1
port = 3306
pid-file = /var/lib/mysql1/db.pid1
datadir = /var/lib/mysql1
skip-locking
log-error = /var/lib/mysql1/db1.err
user = mysql
long_query_time = 1
key_buffer = 256M
max_allowed_packet = 200M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
myisam_sort_buffer_size = 64M
thread_cache = 32
query_cache_size = 32M
thread_concurrency = 2
max_connections=1000
server-id = 1
character-set-server=utf8
[mysqld2]
socket = /tmp/mysql.sock2
port = 3307
pid-file = /var/lib/mysql2/db.pid2
datadir = /var/lib/mysql2
skip-locking
log-error = /var/lib/mysql2/db2.err
user = mysql
long_query_time = 1
key_buffer = 256M
max_allowed_packet = 200M
table_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
myisam_sort_buffer_size = 64M
thread_cache = 32
query_cache_size = 32M
thread_concurrency = 2
max_connections=1000
server-id = 2
character-set-server=utf8
5、启动mysql
#mysqld_multi start 1-2
6、命令行登录mysql
#mysql -u root -S /tmp/mysql.sock1 -p 登录第一个mysql
#mysql -u root -S /tmp/mysql.sock2 -p 登录第二个mysql
7、关闭mysql,只有登录每个mysql,给multi用户添加权限后才可以通过mysqld_multi stop 1-2来停止mysql
1)mysql -u root -S /tmp/mysqld.sock1 -p
GRANT SHUTDOWN ON *.* TO 'multi'@'localhost' IDENTIFIED BY 'multi';
2)mysql -u root -S /tmp/mysqld.sock2 -p
GRANT SHUTDOWN ON *.* TO 'multi'@'localhost' IDENTIFIED BY 'multi';
停止:
mysqld_multi stop 1-2(可以通过mysqld_multi stop 1 来停止其中的任意个mysql)
8、赋予远程登录权限
登录mysql shell,分别在两个mysql上运行一下语句,允许远程连接mysql
mysql> UPDATE mysql.user SET Host='%' WHERE Host='localhost' ;
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%";
mysql> FLUSH PRIVILEGES ;