MySQL 学习2——Linux CentOS 7 安装 Mysql 5.7

163 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情 >>

1. 卸载原有Mysql

# 查看MySQL进程
$ ps -ef | grep mysql
# 杀掉MySQL进程
$ kill -9 mysqlId

1.png

# 查看通过yum安装的MySQL相关程序
$ rpm -qa|grep -i mysql

2.png

# 逐个卸载, 卸载不掉的用 rpm -ev, 
$ yum -y remove mysql-community-client-5.6.38-2.el7.x86_64
# 依次卸载 直到没有
$ yum -y ...

3.png

2. 下载安装

[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
[root@localhost src]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
[root@localhost src]# yum -y install mysql-server

4.png

一路y…

5.png

参考路径:

默认配置文件路径:

配置文件:/etc/my.cnf

日志文件:/var/log/var/log/mysqld.log

服务启动脚本:/usr/lib/systemd/system/mysqld.service

socket文件:/var/run/mysqld/mysqld.pid

3. 配置my.cnf

$ vim /etc/my.cnf
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

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

# 忽略表名大小写
lower_case_table_names=1

[client]
port=3306
socket=/var/lib/mysql/mysql.sock

注意:

安装完成后,密码为随机密码,需要重置密码。

4. 启动服务

$ service mysqld restart

6.png

补充:

如果输入命令按回车之后很长时间没有反应, 可以去看一下MySQL的报错日志.
# 查看MySQL的错误日志
$ tail -f /var/log/mysqld.log
  • 错误示例1: ( 端口被占用 )
2018-07-17T08:23:01.745601Z 0 [ERROR] Can't start server: Bind on TCP/IP port: Address already in use
2018-07-17T08:23:01.745607Z 0 [ERROR] Do you already have another mysqld server running on port: 3306 ?
2018-07-17T08:23:01.745619Z 0 [ERROR] Aborting
  • 错误示例2: ( MySQL 5.7 不支持default-character-set=utf-8 )
2020-06-09T13:16:23.160832Z 0 [Note] Plugin 'validate_password' is disabled.
2020-06-09T13:16:23.161099Z 0 [ERROR] unknown variable 'default-character-set=utf-8'
2020-06-09T13:16:23.161110Z 0 [ERROR] Aborting

5. 重置密码

# 查找默认密码
$ grep "A temporary password" /var/log/mysqld.log

7.png

注意:

第一次登录之后, 如果不重置密码, 什么也不能操作.

8.png

# 重置密码
mysql> set password for 用户名@localhost = password('新密码');

补充:MySQL 5.7 以上版本默认不能设置密码为简单密码,需要进行如下操作:

mysql> # 先将密码设置为复杂密码
mysql> set password for root@localhost = password('eVg<r/p>.5Sb');
mysql> # 查看变量
mysql> show variables like 'validate_password%';
mysql> # 设置密码校验策略为LOW
mysql> set global validate_password_policy=LOW;
mysql> # 设置密码长度为6
mysql> set global validate_password_length=6;
mysql> # 设置密码为123456
mysql> set password for root@localhost = password('123456');

9.png

6. 修改访问权限

# 查看访问权限
mysql> use mysql;
mysql> select host from user where user='root';

10.png

# 修改访问权限为所有终端均可访问
mysql> update user set host = '%' where user ='root';
mysql> flush privileges;

11.png

到此为止, 已经MySQL的安装已经完成了.

可以通过如下命令访问MySQL数据库了:

# 连接数据库
$ mysql -uroot -proot

7. 卸载

# 卸载应用程序
$ yum remove mysql mysql-server mysql-libs compat-mysql51
# 删除表文件
$ rm -rf /var/lib/mysql
# 删除配置文件
$ rm /etc/my.cnf
# 查看安装包
$ rpm -qa|grep mysql
# 如果安装包不为空,卸载安装包
$ rpm -e XXX