最近接手了一个老项目,需要部署一套测试环境,下面把部署MySQL的过程记录一下
下载并上传到服务器
scp mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz 118:/opt/soft_packages
检查并安装依赖
yum search libaio # search for info
yum install libaio -y # install library
按顺序执行下面命令
# 添加用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
# 解压并创建软链接,方便管理
cd /opt/soft_packages
tar -xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
cd /usr/local
ln -s mysql-5.7.17-linux-glibc2.5-x86_64 mysql
cd mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
创建目录
# 一般是项目名加端口号或直接端口号 eg:crm3306 or user3306 or yyms3376 or 3306
mkdir -p /data/mysql/mysql3306/{data,tmp,logs}
# 权限
chown -R mysql:mysql /data/mysql/mysql3306
chown -R mysql:mysql /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64
chown -R mysql:mysql /usr/local/mysql
配置文件/etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
# last ip + port
server-id = 1003306
port = 3306
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
tmpdir = /data/mysql/mysql3306/tmp
# 这里使用默认socket路径,方便本机登录(/tmp/mysql3306.sock)
socket = /tmp/mysql.sock
log-bin = /data/mysql/mysql3306/logs/mysql-bin
log-error = /data/mysql/mysql3306/logs/error.log
slow-query-log-file = /data/mysql/mysql3306/logs/slow.log
skip-external-locking
skip-name-resolve
log-slave-updates
character-set-server = utf8
lower_case_table_names = 1
sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
symbolic-links=0
# InnoDB
innodb_data_home_dir = /data/mysql/mysql3306/data
innodb_log_group_home_dir = /data/mysql/mysql3306/logs
[mysqld_safe]
初始化数据库实例并启动
bin/mysqld --initialize --user=mysql
bin/mysql_ssl_rsa_setup
bin/mysqld_safe --user=mysql &
初始化用户
# 查看密码
grep password /data/mysql/mysql3306/logs/error.log
2023-04-26T23:41:06.379875Z 1 [Note] A temporary password is generated for root@localhost: s13vQfpN0k.b
# 第一次登录
mysql -p"s13vQfpN0k.b"
# 设置本机登录的root的密码为空
set password = password("");
# 查询用户
select user, host from mysql.user;
+-----------+-----------+
| user | host |
+-----------+-----------+
| mysql.sys | localhost |
| root | localhost |
+-----------+-----------+
2 rows in set (0.00 sec)
# 创建一个远程登录的root账号
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
# 查询用户
select user, host from mysql.user;
+-----------+-----------+
| user | host |
+-----------+-----------+
| root | % |
| mysql.sys | localhost |
| root | localhost |
+-----------+-----------+
3 rows in set (0.01 sec)
配置防火墙
iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
至此,MySQL安装完成