linux 安装多个mysql实例:
压缩安装:
1.下载mysql源码:
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
解压文件:
tar -xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
重命名
mv mysql-8.0.22-linux-glibc2.12-x86_64 mysql3306
复制一份
cp -r mysql3306 mysql80
2.创建mysql实例用户及文件
a. useradd mysql -r -s /sbin/nologin
b、 mkdir -p /usr/local/mysql/mysql_files
c、 创建多实例数据目录: mkdir -p /data/mysql_data{1..3}
d. 修改mysql目录的属组及用户: chown root.mysql -R /usr/local/mysql
e、修改专用目录的属主及属组:sudo chown mysql.mysql -R /usr/local/mysql/mysql_files /usr/local/mysql/data/mysql_data{1..3}
3.修改mysql配置文件
由于我是多实例,所以指定了my.cnf 的路径,/usr/local/mysql/mysql3306/conf/my.cnf
4.初始化实例
/usr/local/mysql/mysql3306/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql3306 --datadir=/usr/local/mysql/data/mysql_data1
出现错误:
The designated data directory /usr/local/mysql/data/mysql_data1/ is unusable. You can remove all files that the server added to it.
https://blog.csdn.net/qq_17229141/article/details/108524242
因为/usr/local/mysql/data/mysql_data1 目录已经存在,删掉这个目录,初始化时会自动创建这个目录。
[Server] A temporary password is generated for root@localhost: S&%o8XxlUhki
记住初始化的密码:S&%o8XxlUhki
5.开启各实例的SSL连接
/usr/local/mysql/mysql3306/bin/mysql_ssl_rsa_setup --user=mysql --basedir=/usr/local/mysql/mysql3306 --datadir=/usr/local/mysql/data/mysql_data1
--defaults-file=/usr/local/mysql/mysql3306/conf/my.cnf
https://www.cnblogs.com/kevingrace/p/10228694.html
6.启动mysql
--defaults-file 指定配置文件路径
/usr/local/mysql/mysql3306/bin/mysqld --defaults-file=/usr/local/mysql/mysql3306/conf/my.cnf --user=root
报错:Multiple files found for the same tablespace ID
修改/usr/local/mysql/mysql3306/support-files/mysqld_multi.server 中的路径为安装路径
报错:Failed to set datadir to '/usr/local/mysql/mysql3306/data/' (OS errno: 2 - No such file or directory)
指定 启动时指定datadir的目录
启动脚本:
/usr/local/mysql/mysql3306/bin/mysqld_safe --defaults-file=/usr/local/mysql/mysql3306/conf/my.cnf --datadir=/usr/local/mysql/data/mysql_data1 --user=root &
mysqld_safe与mysqld区别(转载)
https://www.cnblogs.com/benwu/articles/9061345.html
https://blog.csdn.net/weixin_38898423/article/details/103473895
7.客户端登录
mysql -uroot -p
初始化密码:S&%o8XxlUhki
修改初始化密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
8.允许远程登录
use mysql;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
或者update user set host = ’%’ where user = ’root’;
https://www.cnblogs.com/weifeng1463/p/7941625.html
9.安装另一个mysql实例
同上bu'zou