在一个服务器中,创建多个数据库进程(多实例)
多实例:
一般在一个系统环境中,可以运行多个相同的服务程序信息,并且产生不同的进程和网络端口信息,就可以称为多实例概念;
在数据库服务运行过程中,也可以启动多个数据库服务程序,产生多个数据库服务进程和不同的服务端口,形成多实例;
构建数据库多实例:
第一步骤:创建多实例准备工作
mkdir -p /data/330{7..9}/data
chown -R mysql. /data/
mv /etc/my.cnf /tmp/
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3309/data
cat >>/data/3307/data/my.cnf<<EOF
[mysql]
socket=/tmp/mysql3307.sock
[mysqld]
user=mysql
port=3307
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/tmp/mysql3307.sock
EOF
cat >>/data/3308/data/my.cnf<<EOF
[mysql]
socket=/tmp/mysql3308.sock
[mysqld]
user=mysql
port=3308
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/tmp/mysql3308.sock
EOF
cat >>/data/3309/data/my.cnf<<EOF
[mysql]
socket=/tmp/mysql3309.sock
[mysqld]
user=mysql
port=3309
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/tmp/mysql3309.sock
EOF
mysqld_safe --defaults-file=/data/3307/data/my.cnf &
mysqld_safe --defaults-file=/data/3308/data/my.cnf &
mysqld_safe --defaults-file=/data/3309/data/my.cnf &
4) 重置数据库密码
第一个里程:重新启动数据库服务
1)授权表 user db tables_priv -- 跳过授权表(数据库启动不要加载授权表)
2)禁止远程用户登录 -- tcp 地址 3306 (数据库服务启动不要有监听端口)
mysqld_safe --skip-grant-tables --skip-networking &
第二个里程:重置用户密码信息
flush privileges;
alter user root@'localhost' identified by '123456';
quit
第三个里程:重新正常启动数据库
/etc/init.d/mysqld start
第四个里程:测试登录
mysql -uroot -p123456