前言

  • CentOS Linux release 8.2.2004
  • mysql 5.7.31

如何安装?

目前为止,mysql 5.7.31 未提供针对 CentOS8 的yum源。那么就不能用yum方式安装了。
那就使用rpm方式安装。

下载rpm

需要下载下面这四个rpm:

  • mysql-community-common-5.7.31-1.el7.x86_64.rpm
  • mysql-community-libs-5.7.31-1.el7.x86_64.rpm
  • mysql-community-client-5.7.31-1.el7.x86_64.rpm
  • mysql-community-server-5.7.31-1.el7.x86_64.rpm
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-community-common-5.7.31-1.el7.x86_64.rpm
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-community-libs-5.7.31-1.el7.x86_64.rpm
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-community-client-5.7.31-1.el7.x86_64.rpm
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-community-server-5.7.31-1.el7.x86_64.rpm

如果上述地址不可用,尝试在这里找找新的地址:
https://downloads.mysql.com/archives/community/

安装

yum install -y mysql-community-common-5.7.31-1.el7.x86_64.rpm
yum install -y mysql-community-libs-5.7.31-1.el7.x86_64.rpm
yum install -y mysql-community-client-5.7.31-1.el7.x86_64.rpm
yum install -y mysql-community-server-5.7.31-1.el7.x86_64.rpm

检查是否安装成功

shell> mysql -V
mysql  Ver 14.14 Distrib 5.7.31, for Linux (x86_64) using  EditLine wrapper

启动mysql

systemctl start mysqld

检查是否启动成功

shell> systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-11-27 16:32:36 CST; 22min ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 41331 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exite>
  Process: 41277 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 41333 (mysqld)
    Tasks: 27 (limit: 48065)
   Memory: 306.6M
   CGroup: /system.slice/mysqld.service
           └─41333 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

Nov 27 16:32:30 iZ2ze1o3prvrwc34l1ke9pZ systemd[1]: Starting MySQL Server...
Nov 27 16:32:36 iZ2ze1o3prvrwc34l1ke9pZ systemd[1]: Started MySQL Server.

登录mysql 并修改密码

密码是啥?参考【mysql】安装 mysql 5.7 完成后,默认密码是啥?怎么查看默认密码?

shell> mysql -uroot -p
mysql> set password=password('MyNewPass4!');

默认的密码强度中等。密码必须包含大小写字母、数字、特殊字符等。参考mysql5.7 修改密码

设置mysql数据编码格式为utf8mb4

修改mysql的配置文件

shell> vim /etc/my.cnf
-----------------------------
# 打开文件后,添加下面的配置。注意对应节点
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect = 'SET NAMES utf8mb4'

重启mysql

shell> systemctl restart mysqld

查看编码格式是否修改

mysql> SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
+--------------------------+--------------------+
| Variable_name            | Value              |
+--------------------------+--------------------+
| character_set_client     | utf8mb4            |
| character_set_connection | utf8mb4            |
| character_set_database   | utf8mb4            |
| character_set_filesystem | binary             |
| character_set_results    | utf8mb4            |
| character_set_server     | utf8mb4            |
| character_set_system     | utf8               |
| collation_connection     | utf8mb4_unicode_ci |
| collation_database       | utf8mb4_unicode_ci |
| collation_server         | utf8mb4_unicode_ci |
+--------------------------+--------------------+
10 rows in set (0.00 sec)

优化和修复所有的表

shell> mysqlcheck -u root -p --auto-repair --optimize --all-databases

设置 table name 不区分大小写

查看 table name 是否区分大小写:

mysql> show variables like '%table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 0     |
+------------------------+-------+
1 row in set (0.00 sec)

Linux下的MYSQL默认是要区分表名大小写的 ,而在windows下表名不区分大小写。

修改mysql的配置文件,让 mysql table name 不区分大小写:

shell> vim /etc/my.cnf
-----------------------------
# 打开文件后,添加下面的配置。注意对应节点
[mysqld]
lower_case_table_names = 1

重启mysql

shell> systemctl restart mysqld

再次查看 table name 是否区分大小写:

mysql> show variables like '%table_names';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
1 row in set (0.00 sec)

参考

https://www.cnblogs.com/sanduzxcvbnm/p/13418417.html
https://www.hxstrive.com/article/728.htm
https://sayyy.blog.csdn.net/article/details/105114264

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐