2021-08-24 centos 安装mysql 5.7

本文OS环境

[root@localhost etc]# uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

1.下载mysql yum源

https://dev.mysql.com/downloads/repo/yum/ 找到 yum 源 rpm 安装包

image.png

安装 mysql 源

# 下载
shell> wget https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm
# 安装 mysql 源
shell> yum localinstall mysql80-community-release-el7-3.noarch.rpm

我们验证下

[root@localhost mysql]# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community      禁用
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - So 禁用
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community      禁用
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - So 禁用
mysql-cluster-8.0-community/x86_64 MySQL Cluster 8.0 Community      禁用
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community - So 禁用
mysql-connectors-community/x86_64  MySQL Connectors Community       启用:    212
mysql-connectors-community-source  MySQL Connectors Community - Sou 禁用
mysql-tools-community/x86_64       MySQL Tools Community            启用:    132
mysql-tools-community-source       MySQL Tools Community - Source   禁用
mysql-tools-preview/x86_64         MySQL Tools Preview              禁用
mysql-tools-preview-source         MySQL Tools Preview - Source     禁用
mysql55-community/x86_64           MySQL 5.5 Community Server       禁用
mysql55-community-source           MySQL 5.5 Community Server - Sou 禁用
mysql56-community/x86_64           MySQL 5.6 Community Server       禁用
mysql56-community-source           MySQL 5.6 Community Server - Sou 禁用
mysql57-community/x86_64           MySQL 5.7 Community Server       禁用
mysql57-community-source           MySQL 5.7 Community Server - Sou 禁用
mysql80-community/x86_64           MySQL 8.0 Community Server       启用:    283
mysql80-community-source           MySQL 8.0 Community Server - Sou 禁用

我们可以看到默认的GA版本是8.0,这里我们想安装5.7版本

[root@localhost mysql]# yum-config-manager --enable mysql57-community
yum-config-manager --disable mysql80-community

再list下 yum repolist all | grep mysql

[root@localhost mysql]# yum repolist all | grep mysql
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community      禁用
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - So 禁用
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community      禁用
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - So 禁用
mysql-cluster-8.0-community/x86_64 MySQL Cluster 8.0 Community      禁用
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community - So 禁用
mysql-connectors-community/x86_64  MySQL Connectors Community       启用:    212
mysql-connectors-community-source  MySQL Connectors Community - Sou 禁用
mysql-tools-community/x86_64       MySQL Tools Community            启用:    132
mysql-tools-community-source       MySQL Tools Community - Source   禁用
mysql-tools-preview/x86_64         MySQL Tools Preview              禁用
mysql-tools-preview-source         MySQL Tools Preview - Source     禁用
mysql55-community/x86_64           MySQL 5.5 Community Server       禁用
mysql55-community-source           MySQL 5.5 Community Server - Sou 禁用
mysql56-community/x86_64           MySQL 5.6 Community Server       禁用
mysql56-community-source           MySQL 5.6 Community Server - Sou 禁用
mysql57-community/x86_64           MySQL 5.7 Community Server       启用:    524
mysql57-community-source           MySQL 5.7 Community Server - Sou 禁用
mysql80-community/x86_64           MySQL 8.0 Community Server       禁用
mysql80-community-source           MySQL 8.0 Community Server - Sou 禁用

可以看到57是默认版本

2.安装 MySQL

使用 yum install 命令安装
yum install -y mysql-community-server

3.启动 MySQL 服务

先修改下mysql的配置文件,主要是改下port和数据文件位置和日志位置

[root@localhost mysql]# vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
port=3358
symbolic-links=0

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

启动mysql
systemctl start mysqld 报错 3358 没权限
查看日志

image.png

google一下发现SELinux为mysql预留的端口是3306,所以要为3358端口增加SELINUX许可,使用semanage 官方文档 Setting the TCP Port Context for mysqld

[root@localhost ~]# semanage port -l | grep mysql
mysqld_port_t                  tcp      1186, 3306, 63132-63164
mysqlmanagerd_port_t           tcp      2273
[root@localhost ~]# semanage port -a -t mysqld_port_t -p tcp 3358
[root@localhost ~]# semanage port -l | grep mysqld
mysqld_port_t                  tcp      3358, 1186, 3306, 63132-63164

重新启动,查看状态

[root@localhost mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2021-08-24 10:04:36 CST; 12s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 30371 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 30350 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 30375 (mysqld)
    Tasks: 27
   Memory: 201.1M
   CGroup: /system.slice/mysqld.service
           └─30375 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

8月 24 10:04:35 localhost.localdomain systemd[1]: mysqld.service holdoff time over, scheduling restart.
8月 24 10:04:35 localhost.localdomain systemd[1]: Starting MySQL Server...
8月 24 10:04:36 localhost.localdomain systemd[1]: Started MySQL Server.

设置开机启动[root@localhost mysql]# systemctl enable mysqld

4.移动数据目录

[root@localhost mysql]# mkdir /servers/mysql/data 
[root@localhost mysql]# cp /var/lib/mysql/* /servers/mysql/data
[root@localhost mysql]# vim /etc/my.cnf 修改配置文件
[mysqld]
datadir=/servers/mysql/data
socket=/servers/mysql/data/mysql.sock
port=3358
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

重新启动报错,查看报错信息,[root@localhost mysql]# journalctl -xe,

image.png

还是selinux限制了。
为mysqld添加操作目录,重新启动,success
semanage fcontext --add --type mysqld_db_t '/servers/mysql(/.*)?'
restorecon -Rv /servers/mysql

5.修改 root 本地账户密码

mysql 安装完成之后,生成的默认密码在 /var/log/mysqld.log 文件中。使用 grep 命令找到日志中的密码。

[root@localhost mysql]# grep 'temporary password' /var/log/mysqld.log
2021-08-24T01:26:41.308383Z 1 [Note] A temporary password is generated for root@localhost: FarU4Tvwit;R

[root@localhost mysql]# mysql -uroot -p -h127.0.0.1 -P 3358
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '71F%lfQxUe';

6.添加远程登录用户,合理授权

grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接密码’;

mysql> GRANT ALL PRIVILEGES ON waiqin.* TO 'waiqin'@'127.0.0.1' IDENTIFIED BY '1qaz@WSX' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)

7.设置默认编码为 utf8

mysql 安装后默认不支持中文,需要修改编码。
修改 /etc/my.cnf 配置文件下添加编码配置,如下:
character-set-server=utf8

mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.07 sec)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容