携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第13天,点击查看活动详情 >>
1. 卸载原有Mysql
# 查看MySQL进程
$ ps -ef | grep mysql
# 杀掉MySQL进程
$ kill -9 mysqlId
# 查看通过yum安装的MySQL相关程序
$ rpm -qa|grep -i mysql
# 逐个卸载, 卸载不掉的用 rpm -ev,
$ yum -y remove mysql-community-client-5.6.38-2.el7.x86_64
# 依次卸载 直到没有
$ yum -y ...
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
一路y…
参考路径:
默认配置文件路径:
配置文件:/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
补充:
如果输入命令按回车之后很长时间没有反应, 可以去看一下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
注意:
第一次登录之后, 如果不重置密码, 什么也不能操作.
# 重置密码
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');
6. 修改访问权限
# 查看访问权限
mysql> use mysql;
mysql> select host from user where user='root';
# 修改访问权限为所有终端均可访问
mysql> update user set host = '%' where user ='root';
mysql> flush privileges;
到此为止, 已经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