Centos7安装mysql 5.7

开放3306端口

1
2
3
firewall-cmd --state
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

下载mysql官方repo源并安装

1
2
3
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

yum localinstall mysql57-community-release-el7-8.noarch.rpm -y

导入mysql repo源的GPG-KEY

1
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

安装mysql

1
yum install mysql-community-server -y

修改/etc/my.cnf

修改默认字符编码、数据库引擎并禁用密码复杂度验证

添加下面内容:

1
2
3
4
5
6
7
8
[mysql]
default-character-set=utf8
 
[mysqld]
default-storage-engine=INNODB
character_set_server=utf8

validate_password = off

重启mysql

获取root临时密码

1
 grep 'temporary password' /var/log/mysqld.log

登录mysql

1
mysql -uroot -p

使用临时密码登录后,不能进行其他的操作,否则会报错

修改root密码

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';

退出mysql并使用新密码重新登录

授权其它机器远程登录

1
2
3
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
 
FLUSH PRIVILEGES;

开机自启动

1
2
systemctl enable mysqld
systemctl daemon-reload

其它设置

忽略大小写

mysql在Windows上lower_case_table_names默认值为1(不敏感),在macOS上默认值为2(不敏感)。在Linux上不支持值2,服务器强制该值为0(敏感)。

MySQL官方也提示说:如果在数据目录驻留在不区分大小写的文件系统(例如Windows或macOS)上,则不应将lower_case_table_names设置为0,否则将出现MySQL服务无法启动的问题。

由于操作系统不同导致大小写敏感的默认设置不一致,因此在开发时一定要养成严格的意识,SQL语句一律采用小写字母,避免无意义的踩坑。

登陆mysql查看:

1
2
3
4
5
6
7
8
9

mysql> show variables like "%case%";
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 0     |  ##0区分 1 不区分
+------------------------+-------+
2 rows in set (0.00 sec)

修改配置文件 /etc/my.cnf 添加:

1
2
3
# 0:区分大小写,1:不区分大小写

lower_case_table_names =1

重启后生效:

1
systemctl restart mysqld
comments powered by Disqus
本博客已稳定运行
使用 Hugo 构建
主题 StackJimmy 设计