签到成功

知道了

CNDBA社区CNDBA社区

同一台服务器运行多个MySQL数据库实例

2017-12-19 18:11 2381 0 原创 Mariadb
作者: leo

环境描述:

已经存在一个MySQL的实例,端口号为3306,配置文件/etc/my.cnf,数据目录/data/mysql,
现在需要重新添加一个端口号为3307端口的MySql的实例。

1、关闭原有的默认端口3306的mysql

[root@www.cndba.cn /]# service mysql stop

2、拷贝或创建数据文件

拷贝现有的mysql数据库文件
没有目录/data/mysql_3307执行下面语句
[root@www.cndba.cn mysql_3307]# cp -r /data/mysql/ /data/mysql_3307
有/data/mysql_3307,执行下面语句
[root@www.cndba.cn mysql_3307]# cp -r /data/mysql/. /data/mysql_3307
创建一个新的空数据库
[root@www.cndba.cn mysql]# mkdir /data/mysql_3307
给数据文件赋予mysql用户与用户组
[root@www.cndba.cn mysql]# chown -R mysql:mysql /data/mysql_3307
[root@www.cndba.cn /]# cd /usr/local/mysql
[root@www.cndba.cn mysql]# scripts/mysql_install_db  --user=mysql --datadir=/data/mysql_3307
或者执行下面命令:
[root@www.cndba.cn mysql]# scripts/mysql_install_db --defaults-file=/data/mysql_3307/my.cnf --user=mysql --datadir=/data/mysql_3307 --basedir=/usr/lcoal/mysql

3、给数据文件赋予mysql用户与用户组

[root@test-206 ~]# chown -R mysql.mysql /data/mysql_3307

4、创建multi的配置cnf文件,用于启动这个mysql实例(如3307)载入执行

[root@www.cndba.cn /]# cp /etc/my.cnf /data/mysql_3307/my.cnf
修改配置文件,对应修改数据目录,日志目录等
vi /data/mysql_3307/my.cnf
[mysqld]
port            = 3307
socket          = /tmp/mysql_3307.sock
log-bin=mysql-bin
default-storage-engine=INNODB
character_set_server=utf8
basedir=/usr/local/mysql/
datadir=/data/mysql_3307

5、启动新实例

[root@www.cndba.cn mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql_3307/my.cnf &
[1] 9616
[root@www.cndba.cn mysql]# 171219 17:18:18 mysqld_safe Logging to '/data/mysql_3307/maridb1.err'.
171219 17:18:18 mysqld_safe Starting mysqld daemon with databases from /data/mysql_3307

6、查看新实例和旧实例都在运行

[root@www.cndba.cn mysql]# ps -ef|grep mysql
root      9616  8600  0 17:18 pts/3    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql_3307/my.cnf
mysql     9757  9616  0 17:18 pts/3    00:00:00 /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql_3307/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql_3307 --plugin-dir=/usr/local/mysql//lib/plugin --user=mysql --log-error=/data/mysql_3307/maridb1.err --pid-file=maridb1.pid --socket=/tmp/mysql_3307.sock --port=3307
root      9830     1  0 17:18 ?        00:00:00 /bin/sh /usr/local/mysql//bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/maridb1.pid
mysql     9981  9830  5 17:18 ?        00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql/ --datadir=/data/mysql --plugin-dir=/usr/local/mysql//lib/plugin --usermysql --log-error=/data/mysql/maridb1.err --pid-file=/data/mysql/maridb1.pid --socket=/tmp/mysql.sock --port=3306
root     10021  8600  0 17:18 pts/3    00:00:00 grep --color=auto mysql

7、设置新密码

[root@www.cndba.cn mysql]# mysqladmin -uroot -S /tmp/mysql_3307.sock password 123456

8、登入新实例

下面使用套接字方式连接到实例
[root@www.cndba.cn mysql]# mysql -uroot -S /tmp/mysql_3307.sock -p123456
下面使用TCP方式连接到实例
[root@www.cndba.cn mysql]# mysql -uroot -p123456 -P3307 --protocol=tcp
再次确认下,新实例,是不是用的mysql_3307这个文件夹的数据
MariaDB [(none)]> show variables like '%datadir%';
+---------------+-------------------+
| Variable_name | Value             |
+---------------+-------------------+
| datadir       | /data/mysql_3307/ |
+---------------+-------------------+
1 row in set (0.00 sec)

9、设置权限

MariaDB [(none)]> use mysql
Database changed
MariaDB [mysql]> select user,host from mysql.user;
+------+-----------+
| user | host      |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1       |
|      | localhost |
| root | localhost |
|      | maridb1   |
| root | maridb1   |
+------+-----------+
6 rows in set (0.00 sec)

MariaDB [mysql]> grant all on *.* to root@'%' identified by '123456' with grant option;
Query OK, 0 rows affected (0.00 sec)

MariaDB [mysql]> show grants for root;
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@%                                                                                                              |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

10、 #关闭mysql实例

[root@www.cndba.cn mysql]# mysqladmin -uroot -proot -S /tmp/mysql.sock shutdown
[root@www.cndba.cn mysql]# mysqladmin -uroot -proot -S /tmp/mysql_3307.sock shutdown
http://www.cndba.cn/cndba/leo1990/article/2504 http://www.cndba.cn/cndba/leo1990/article/2504
http://www.cndba.cn/cndba/leo1990/article/2504
http://www.cndba.cn/cndba/leo1990/article/2504
http://www.cndba.cn/cndba/leo1990/article/2504 http://www.cndba.cn/cndba/leo1990/article/2504
http://www.cndba.cn/cndba/leo1990/article/2504
http://www.cndba.cn/cndba/leo1990/article/2504 http://www.cndba.cn/cndba/leo1990/article/2504
http://www.cndba.cn/cndba/leo1990/article/2504

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
leo

leo

关注

坚持你的坚持

  • 202
    原创
  • 0
    翻译
  • 39
    转载
  • 16
    评论
  • 访问:765458次
  • 积分:1270
  • 等级:核心会员
  • 排名:第8名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ