Linux环境下的MySQL的卸载、安装与使用[以CentOS7为例说明]
- 1、下载MySQL安装包
- 2、卸载MySQL
- (1)检查是否安装过MySQL和mariadb
- (2)卸载MySQL和mariadb
- (3)问题记录(了解)
- 3、安装MySQL
- (1)安装前在CentOS7下检查MySQL依赖
- (1.1)检查`/tmp`临时目录权限(必不可少)
- (1.2)检查依赖 libaio 和 net-tools
- (2)严格按照如下顺序安装
- (3)查看MySQL版本
- (4)服务初始化
- (5)查看/启动服务
- (6)设置MySQL自启动
- (7)登录MySQL更改密码
- 4、使用远程工具连接CentOS下的MySQL
- (1)远程工具:`Navicat`连接测试
- (2)问题排查
- (2.1)ping 命令检测网络是否通畅
- (2.2)telnet 测试IP端口的连接
- (2.3)关闭Windows和Linux下的防火墙
- (2.4) 继续点击连接测试
- (3)MySQL中user表下的 root 用户host值修改
- (4)(必须)刷新权限
- (5)解决MySQL8.0加密算法导致连接失败问题
- (6)连接测试成功
1、下载MySQL安装包
mysql官网中文版
2、卸载MySQL
(1)检查是否安装过MySQL和mariadb
查看当前MySQL
的安装情况(-i
:忽略大小写)
方式1:
rpm -qa | grep -i mysql
方式2:yum list installed | grep mysql
查看当前mariadb
的安装情况
yum list installed | grep mariadb
注意:mariadb
是安装centos7
时,默认安装的,如果要安装MySQL
需要把这个mariadb
卸载掉,否则会起冲突,导致MySQL
安装失败!!!可以查看下面的问题记录了解相关情况
(2)卸载MySQL和mariadb
如果有安装过MySQL
,卸载前关闭掉
查看MySQL
服务状态
systemctl status mysqld
关闭MySQL
服务
systemctl stop mysqld
卸载MySQL
服务
根据步骤(1)中查询出的MySQL
相关程序;卸载后执行rpm -qa | grep -i mysql
命令来查看是否还有MySQL
相关的安装程序遗漏掉,确保卸载干净;注意:安装的MySQL
的程序可能存在先后顺序,卸载时注意程序之间的依赖关系
yum remove mysql服务名称
删除MySQL相关文件
1、查找文件
find / -name mysql
2、删除文件
rm -rf 文件名称
删除my.cnf
相关文件
rm -rf /etc/my.cnf
卸载mariadb
yum -y remove mariadb服务名称
(3)问题记录(了解)
1.
yum list installed | grep mariadb
和rpm -qa |grep -i mysql
有什么区别?
2.
mariadb 是什么?
3. 为什么我安装好
centos7
后,并没有安装MySQL
相关的内容,但是执行命令yum list installed | grep mariadb
后,发现有mariadb
?
4. 如果在
centos
环境中安装MySQL
,在安装前要把系统自带的MariaDB
卸载掉吗?如果不卸载,mariadb
和msyql
会不会有冲突啊?
5. 为什么我在
centos
环境下执行查看MySQL
版本的命令,提示无此命令?
3、安装MySQL
(1)安装前在CentOS7下检查MySQL依赖
(1.1)检查/tmp
临时目录权限(必不可少)
安装MySQL
过程中,系统会通过MySQL
用户在/tmp
目录下新建tmp_db
文件,所以给/tmp
较大的权限,执行如下命令(赋予 读
、写
、执行
的权限):
chmod -R 777 /tmp
(1.2)检查依赖 libaio 和 net-tools
rpm -qa | grep libaio
rpm -qa | grep net-tools
(2)严格按照如下顺序安装
rpm -ivh 名称
(3)查看MySQL版本
版本:
mysql --version
或mysqladmin --version
已安装程序:rpm -qa | grep -i mysql
(4)服务初始化
为保证数据库目录与文件的所有者为mysql
登录用户,如果你是以root
身份运行mysql
服务,需要执行下述命令初始化
mysqld --initialize --user=mysql
--initialize
:表示以安全
模式初始化,会为root
用户生成一个密码并标记为过期
,登录后需要重新设置一个新的密码,生成的临时密码
会在 /var/log/mysqld.log 日志文件
中保留一份
查看密码命令
cat /var/log/mysqld.log
(5)查看/启动服务
查看/启动/重启/停止MySQL服务:
systemctl status/start/restart/stop/ mysql
(6)设置MySQL自启动
每次启动虚拟机,再启动MySQL
会比较麻烦,可以将MySQL
设置为自启动,
查看命令:
systemctl list-unit-files | grep mysqld
enabled
:自启动;disenabled
:禁止自启动
设置自启动
/非自启动
命令:
systemctl enable/disable mysqld
(7)登录MySQL更改密码
使用上述日志文件中的初始密码
登录MySQL
,然后更改密码
注意:MySQL5.7(不含)
之后设置密码太简单会报错
,这是因为MySQL
使用了全新的密码安全机制
修改密码命令:
alter user 'root'@'localhost' identified by '新密码';
4、使用远程工具连接CentOS下的MySQL
(1)远程工具:Navicat
连接测试
(2)问题排查
(2.1)ping 命令检测网络是否通畅
(2.2)telnet 测试IP端口的连接
注意:使用telnet
命令前,必须保证Windows功能
下的Telnet客户端
处于勾选状态
。
(2.3)关闭Windows和Linux下的防火墙
Windows
Linux
每次CentOS
启动时,为防止
防火墙自启动,可以将防火墙设置为禁止自启动
(2.4) 继续点击连接测试
(3)MySQL中user表下的 root 用户host值修改
登录MySQL查看原因:
修改命令:
update user set host = '192.168.169.%' where user = 'root';
- 表示只要IP是
192.168.169
开头的地址都可以远程连接MySQL
,根据自己IP设置即可,不影响使用的情况下,颗粒度越小越好
(4)(必须)刷新权限
修改完root
用户对应的主机值时,一定要刷新权限,修改的值才会生效
刷新命令:
flush privileges;
(5)解决MySQL8.0加密算法导致连接失败问题
解决办法:Linux下登录MySQL数据库,执行如下命令
alter user 'root'@'192.168.169.%' identified with mysql_native_password by 'mysql数据库登录密码';
- 表示只要
IP
是192.168.169
开头的地址下的客户端都可以远程连接MySQL
,根据自己IP
设置即可,不影响使用的情况下,颗粒度越小越好
(6)连接测试成功