分享

linux下同时运行多个mysql - 目标→Linux - 51CTO技术博客

 clisun 2011-01-24
来自网络,感谢开源,感谢分享

通过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

1mysql -u root -S /tmp/mysqld.sock1 -p

 GRANT SHUTDOWN ON *.* TO 'multi'@'localhost' IDENTIFIED BY 'multi';

2mysql -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 ;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多