单台服务器部署多台mysql实例
实际开发中,客户提供的一台和外网隔离的服务器上已经部署了一套mysql,需要在不破坏该mysql实例的情况下部署另一个mysql
由于服务器无法和外网通信,选择通用二进制安装
- mysql官网下载压缩包https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.23-el7-x86_64.tar
- 解压,进入加压目录;
- 创建一个mysql用户和组
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
- 数据目录初始化
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
- 使用服务器初始化数据目录
bin/mysqld --defaults-file=/usr/software/mysql-8.0.22-el7-x86_64/my.cnf
--initialize --user=mysql
my.cnf配置
[mysqld]
datadir=/usr/software/mysql-8.0.22-el7-x86_64
socket=/var/lib/mysql/mysql3308.sock
pid-file=/var/run/mysqld/mysqld3308.pid
port=3308
log-error=/var/log/mysqld3308.log
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
lower_case_table_names=1
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
注意datadir socket pid-file 要和其他mysql实例不同 log-error 所有者所属组为mysql
chown mysql:mysql mysqld3308.log
- 启动mysql ,指定配置文件,配置文件必须为第一个参数
bin/mysqld_safe --defaults-file=/usr/software/mysql-8.0.22-el7-x86_64/my.cnf --user=mysql &
- 测试连接mysql,必须指定-h 否则即使指定了端口号 ,也会按默认3306去连接
mysql -uroot -p -P3308 -h127.0.0.1
- 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
flush privileges;
- 新增远程登录账号
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
flush privileges;