标签:ide 数据库 mkdir port 进程 star ror 初始 日志
Mysql多实例概述:在一台物理主机上运行多个数据库服务
作用:节约运维成本,提高硬件利用率
配置步骤说明
我们以mysql-5.7.20 为例
1– 安装支持多实例服务的软件包
1.1解压软件
[root@host50~]# tar -zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
1.2– 修改目录名
[root@host50 mysql-20]# mv mysql-5.7.20-linux-glibc2.12-x86_64/ /usr/local/mysql
1.3– 修改 PATH 变量
[root@host50 local]# vim /etc/profile
[root@host56 ~]# echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
[root@host50 local]# source /etc/profile
2– 修改主配置文件
[root@host50 local]# vim /etc/my.cnf
[mysqld_multi] // 启用多实例
mysqld = /usr/local/mysql/bin/mysqld_safe // 指定进程文件的路径
mysqladmin = /usr/local/mysql/bin/mysqladmin // 指定管理命令路径
user = root // 指定调用进程的用户
[mysqld1] // 实例进程名称 ,X 表示实例名称 , 如 [mysql1]
port=3307 // 端口号
datadir=/dataone // 数据库目录 ,要手动创建
socket=/dataone/mysqld.sock // 指定 sock 文件的路径和名称
log-error=/dataone/mysqld.log // 错误日志位置
pid-file=/dataone/mysqld.pid // 进程 pid 号文件位置
[mysqld2] // 实例进程名称 ,X 表示实例名称 , 如 [mysql1]
port=3308 // 端口号
datadir=/datatwo // 数据库目录 ,要手动创建
socket=/datatwo/mysqld.sock // 指定 sock 文件的路径和名称
log-error=/datatwo/mysqld.log // 错误日志位置
pid-file=/datatwo/mysqld.pid // 错误日志位置
– 根据配置文件做相应设置
root@host56 ~]# mkdir -p /dataone
[root@host56 ~]# mkdir -p /datatwo
[root@host56 ~]# useradd mysql
c[root@host56 ~]# chown mysql:mysql /data*
*为了安全可以更改文件权限
chown mysql:mysql /data*
– 初始化授权库
[root@localhost bin]# ./mysqld --user=mysql --basedir= 软件安装目录 --datadir= 数据库目录 – initialize // 初始化授权库
]#mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/dataone --initialize
]#mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/datatwo --initialize
– 启动服务
[root@stu ~]# mysqld_multi start实例编号 //启动实例进程
– 客户端访问
[root@host50~]# mysqld_multi start 1
[root@host50 ~]# mysqld_multi start 2
root@host56 ~]# netstat -utnlp | grep :3308
tcp6 0 0 :::3308 :::* LISTEN 1156/mysqld
[root@host56 ~]# netstat -utnlp | grep :3307
tcp6 0 0 :::3307 :::* LISTEN 927/mysqld
[root@host56 ~]#
[root@localhost bin]# ./mysqld_multi --user=root --password=
密码 stop 实例编号 // 停止实例进程
6 访问多实例服务
连接实例服务1
[root@host50 ~]#mysql -uroot -p‘bXk.5j!pjto#‘ -S /dataone/mysqld.sock
mysql> ALTER USER user() identified by "123456";
mysql> quit;
]# mysql -uroot -p123456 -S /dataone/mysqld.sock
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
连接实例服务2
[root@host50 ~]#mysql -uroot -p‘bKsaf+xzk0V3‘ -S /datatwo/mysqld.sock
mysql> alter user user() identified by "123456";
Query OK, 0 rows affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> quit
Bye
[root@host50 ~]# mysql -uroot -p123456 -S /datatwo/mysqld.sock
停止启动的实例服务
]# mysqld_multi --user=root --password=密码 stop 实例编号
[root@host50~]# netstat -utnlp | grep :3307
tcp6 0 0 :::3307 :::* LISTEN 927/mysqld
[root@host50 ~]#
[root@host50 ~]#
[root@host50~]# netstat -utnlp | grep :3308
tcp6 0 0 :::3308 :::* LISTEN 1156/mysqld
[root@host50 ~]# mysqld_multi --user=root --password=123456 stop 1
[root@host50 ~]# netstat -utnlp | grep :3307
[root@host50 ~]# netstat -utnlp | grep :3308
tcp6 0 0 :::3308 :::* LISTEN 1156/mysqld
[root@host50 ~]#
[root@host50 ~]#
[root@host50~]#
[root@host50 ~]# mysqld_multi --user=root --password=123456 stop 2
[root@host50~]# netstat -utnlp | grep :3308
[root@host50~]# mysql -uroot -p123456 -S /datatwo/mysqld.sock
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/datatwo/mysqld.sock‘ (2)
标签:ide 数据库 mkdir port 进程 star ror 初始 日志
原文地址:http://blog.51cto.com/13124606/2142619