暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【实操篇】用户:单台服务器部署多MySQL实例,咋弄?

原创 杨磊 2019-12-23
1644

【前言】
总有一些需求和业务情况让你不得不在已有mysql进程数据服务器上,再安装一个mysql进程,今天就搞一下一台服务器上两个mysql如何安装,本文新库安装采用二进制形式。

【服务器信息】

服务器A   IP: 192.168.0.100  端口3306 3307
服务器B   IP: 192.168.0.101  端口 3306

【业务需求】
最近来了一个需求,服务器A已有MySQL_1,再创建一个新库MySQL_2进程,并恢复服务器B上的MySQL_3中数据至新的服务器A上新创建的MySQL_2库中;服务器A上MySQL1用的是3006端口,新创建的MySQL_2进程规划使用3307端口。

【解决方案】
规划:

MySQL_1数据存放路径:/mysqldata/3306/

MySQL_2数据存放路径:/mysqldata/3307/

1. 创建mysql编译目录

[root@dcm-testdb ~]# mkdir -p /mysqldata/3307

[root@dcm-testdb ~]#mkdir -p /mysqldata/3307/data

[root@dcm-testdb ~]#chown -R mysql:mysql /mysqldata/3307

2. 登录MySQL_3查看要恢复的数据

[root@dcm-testdb ~]#/mysqlsoft/mysql/bin/mysql -uroot -p

mysql> select table_schema,round(sum(data_length+index_length)/1024/1024,4) from information_schema.tables group by table_schema;

3. 使用mysqldump做MySQL_3库全备

[root@dcm-testdb ~]#/mysqlsoft/mysql/bin/mysqldump -uroot -p --all-databases --single-transaction --socket=/mysql/3307/data/mysqld.sock --master-data=2 >/mysql/backup/full_0625.sql

4. 服务器A上创建MySQL_2

[root@dcm-testdb ~]# mkdir -p /mysqldata/3307/{data/,etc/,log/}

[root@dcm-testdb ~]# chown -R mysql:mysql /mysqldata/3307/data

[root@dcm-testdb ~]# chown -R mysql:mysql /mysqldata/3307/etc

5. 在/mysqldata/etc/下创建新实例的my.cnf

[root@dcm-testdb ~]#vi /mysqldata/3307/etc/my.cnf

[mysqld]

datadir=/mysqldata/3307/data

Basedie=/usr/local/mysql

socket=/mysqldata/3307/data/mysql.sock

[mysqld_safe]

log-error=/mysqldata/3307/log/mysqld3307.log

pid-file=/mysqldata/3307/mysqld3307.pid

**5. 配置自启动 **

#将mysql的启动服务添加到系统服务中,设置开机自启动:(chkconfig 命令redhat系统的)

[root@dcm-testdb ~]#cp /mysqlsoft/mysql/support-files/support-files/mysql.server /etc/init.d/mysql3307.server

创建软连接:

[root@dcm-testdb ~]# ln -s /mysqlsoft/mysql /usr/local/mysql

赋予执行权限:

[root@dcm-testdb ~]# chmod +x /etc/init.d/mysql3307.server

添加开机mysql自启动服务:

[root@dcm-testdb ~]# chkconfig --add mysql3307.server

显示服务列表:

[root@dcm-testdb ~]# chkconfig --list

如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则使用如下命令:

[root@dcm-testdb ~]# chkconfig --level 345 mysql3307.server on

5.新实例初始化

[root@dcm-testdb ~]#/mysqlsoft/mysql/bin/mysqld --defaults-file=/mysqlsoft/3307/etc/my.cnf --initialize --datadir=/mysqlsoft/3307/data/ --basedir=/usr/local/mysql --user=mysql

6.启动新数据库并修改root密码

[root@dcm-testdb ~]#/usr/local/mysql/bin/mysqld_safe --defaults-file=/mysqlsoft/3307/etc/my.cnf --user=mysql &

PS:一定记得后台方式运行MySQL库,否则会随着session的断开MySQL服务会中断。

[root@dcm-testdb ~]#/usr/local/mysql/bin/mysqladmin -uroot -p password ‘mysql’ --socket=/tmp/mysql3307.sock

mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ identified by ‘mysql’;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

7.服务器A MySQL_2上恢复MySQL_3的数据

/usr/local/mysql/bin/mysql -uroot -pmysql --socket=/mysql/3307/data/mysqld.sock </mysql/backup/full_0625.sql

8. 验证数据

使用如下命令查看MySQL_2和MySQL_3的大小,做简单对比

mysql> select table_schema,round(sum(data_length+index_length)/1024/1024,4) from information_schema.tables group by table_schema;

欢迎关注如下个人微信公众号:
image.png

最后修改时间:2019-12-23 17:34:36
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论