快捷导航
- 安装MySQL
- 修改MySQL初始密码
- 通过mysqladmin修改密码
- 通过Navicat连接至MySQL
安装MySQL
操作系统:CentOS / 8.2 x86_64 (64bit)
1)安装前,我们可以检测系统是否已安装 MySQL:
rpm -qa | grep mysql
因为我已经安装过了,所以显示的结果是这样的:
2)如果你系统有安装,那可以选择进行卸载:
rpm -e mysql
3)使用yum安装MySQL
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
4)权限设置
chown mysql:mysql -R /var/lib/mysql
5)初始化MySQL
mysqld --initialize
6)启动MySQL
systemctl start mysqld
7)查看 MySQL 运行状态
systemctl status mysqld
正常的运行状态讲道理应该是这样的:
修改MySQL初始密码
1)使用指令:find / -name,搜索mysqld.log
find / -name mysqld.log
找到mysqld所在的位置:
2)使用指令:vi,查看 mysqld.log
vi /var/log/mysql/mysqld.log
默认的登录密码是:XO)j%wldp4tV
2021-03-13T14:41:45.463256Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: XO)j%wldp4tV
如下图所示,拿到初始密码后就可以修改密码了
通过mysqladmin修改密码
在终端命令行输入:
mysqladmin -u root -p password 新密码
Enter password: 输入原来的旧密码
比如,我在已知原密码的情况下,想把用户root的密码设置为root,如:
这样就算修改成功了,下次便可用新密码登录
通过Navicat连接至MySQL
新建测试连接,输入对应主机,MySQL的用户名和密码后,出现以下报错信息:
这是“无法给远程连接的用户权限”问题,所以需要授权MySQL允许用户远程登录
1)在Linux终端下查看网络端口信息:
netstat -ntpl
2)之后查看防火墙的状态,发现3306端口的数据包都是接收(ACCEPT)状态:
iptables -vnL
如果这块状态是丢弃(DROP),就要清除防火墙中链中的规则,我是接收(ACCEPT)状态但也一并清除了
清除防火墙中链中的规则:
iptables -F
3)Linux终端登入MySQL,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,将"localhost"改为"%"
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
这里能看到字段host下user字段为root的值从localhost更改为%,意思是允许了非localhost的所有IP主机用户使用root远程登录MySQL,这里说一下MySQL的登陆格式:
mysql -h主机地址 -u用户名 -p用户密码
4)操作完后,切记执行以下命令刷新权限使上述更改生效:
mysql>FLUSH PRIVILEGES;
5)这时再通过Navicat远程连接MySQL > 测试连接,如下图,说明成功: