[root@rocky8 ~]# tar -xf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz -C /usr/local/ [root@rocky8 ~]# ln -s /usr/local/mysql-8.0.31-linux-glibc2.12-x86_64/ /usr/local/mysql ## 创建各实例数据存放目录 [root@rocky8 ~]# mkdir -p /data/{3306,3307,3308}/data ## 创建各个mysql对应error日志 [root@rocky8 ~]# mkdir -p /data/{3306,3307,3308}/log [root@rocky8 ~]# touch /data/3306/log/error.log [root@rocky8 ~]# touch /data/3307/log/error.log [root@rocky8 ~]# touch /data/3308/log/error.log ## 创建mysql用户组及用户 groupadd mysql useradd -g mysql mysql ## 目录归属赋权 chown -R mysql:mysql /usr/local/mysql 编辑配置文件 vim /etc/my.cnf 写下内容 # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html [client] default-character-set=utf8mb4 [mysqld] user=mysql basedir=/usr/local/mysql lower_case_table_names=1 [mysqld_multi] mysqld=/data/bin/mysqld_safe mysqladmin=/data/bin/mysqladmin log=/data/mysqld_multi.log # 3306 数据库实例 [mysqld3306] port=3306 server_id=1 mysqld=mysqld mysqladmin=mysqladmin datadir=/data/3306/data socket=/tmp/mysql_3306.sock log-error=/data/3306/log/error.log pid-file=/data/3306/mysql3306.pid ## skip-grant-tables #用于跳过密码登录 character_set_server=utf8mb4 init_connect='SET NAMES utf8mb4' lower_case_table_names=1 explicit_defaults_for_timestamp=true # 3307 数据库实例 [mysqld3307] port=3307 server_id=2 mysqld=mysqld mysqladmin=mysqladmin datadir=/data/3307/data socket=/tmp/mysql_3307.sock log-error=/data/3307/log/error.log pid-file=/data/3307/mysql3307.pid # lc_messages_dir=/usr/local/mysql/share/english ## 默认最大连接数设置 # max_connections=300 character_set_server=utf8mb4 init_connect='SET NAMES utf8mb4' lower_case_table_names=1 explicit_defaults_for_timestamp=true # 3308 数据库实例 [mysqld3308] port=3308 server_id=3 mysqld=mysqld mysqladmin=mysqladmin datadir=/data/3308/data socket=/tmp/mysql_3308.sock log-error=/data/3308/log/error.log pid-file=/data/3308/mysql3308.pid # lc_messages_dir=/usr/local/mysql/share/english character_set_server=utf8mb4 init_connect='SET NAMES utf8mb4' lower_case_table_names=1 explicit_defaults_for_timestamp=true 安装libaio软件包(异步IO),不然会mysql初始化的时候会报错 yum install libaio libaio-devel -y 初始化mysql8.0,指定配置文件目录,指定数据存放目录,端口分别是3306,3307,3308 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/data/3306/data/ --initialize /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/data/3307/data/ --initialize /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --datadir=/data/3308/data/ --initialize ## 在/etc/profile 文件末尾添加 vim /etc/profile 在最后一行添加以下内容 export PATH=/usr/local/mysql/bin:$PATH ## 使环境变量生效 source /etc/profile 执行如下命令,不然可能启动时会报错 ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5 ## 启动mysql mysqld_multi --defaults-file=/etc/my.cnf start 3306 mysqld_multi --defaults-file=/etc/my.cnf start 3307 mysqld_multi --defaults-file=/etc/my.cnf start 3308 ## 查看mysql服务 mysqld_multi --defaults-file=/etc/my.cnf report 登录mysql 3306并修改密码 ## 服务器登录 (注意:另外两个实例同样如此。) mysql -uroot -p -S /tmp/mysql_3306.sock ## 输入上面初始化数据库时的临时密码 ## 设置本地访问密码,例如:Asdf-1234,注意密码为高安保等级(例如大小写和特殊字符的组合),不然无法使用其他操作 ## 远程连接设置 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Asdf-1234' PASSWORD EXPIRE NEVER; ## 刷新 flush privileges; 登录mysql 3307并修改密码 ## 服务器登录 (注意:另外两个实例同样如此。) mysql -uroot -p -S /tmp/mysql_3307.sock ## 输入上面初始化数据库时的临时密码 ## 设置本地访问密码,例如:Asdf-1234,注意密码为高安保等级(例如大小写和特殊字符的组合),不然无法使用其他操作 ## 远程连接设置 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Asdf-1234' PASSWORD EXPIRE NEVER; ## 刷新 flush privileges; 登录mysql 3308并修改密码 ## 服务器登录 (注意:另外两个实例同样如此。) mysql -uroot -p -S /tmp/mysql_3308.sock ## 输入上面初始化数据库时的临时密码 ## 设置本地访问密码,例如:Asdf-1234,注意密码为高安保等级(例如大小写和特殊字符的组合),不然无法使用其他操作 ## 远程连接设置 ALTER USER 'root'@'localhost' IDENTIFIED BY 'Asdf-1234' PASSWORD EXPIRE NEVER; ## 刷新 flush privileges;