CentOS6安装MySQL5.7

273 阅读2分钟

最近接手了一个老项目,需要部署一套测试环境,下面把部署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安装完成