环境描述:
已经存在一个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
版权声明:本文为博主原创文章,未经博主允许不得转载。