一、 卸载mysql
查看mysql
安装情况
rpm -qa | grep -i mysql
删除上图中所有信息
rpm -ev mysql-community-release-el7-5.noarch --nodeps
再次查询,没有数据,则为删除干净
find / -name mysql
rm -rf /var/lib/mysql
将机器上的所有mysql相关文件清理干净
安装MYSQL
下载mysql
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server
权限设置:
chown -R mysql:mysql /var/lib/mysql/
初始化 MySQL:
mysqld --initialize
启动 MySQL服务:
systemctl start mysqld
如果启动的时候提示
[root@hecs-225896 mysql]# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.
则需要执行
chmod -R 777 /var/lib/mysql/
查看版本
mysqladmin --version
连接mysql
mysql -u root -p
输入安装时提示的密码,就可以进入数据库了。
如果安装的时候,没有提示默认密码(我多次遇到,不知道原因)
MySQL密码重置
打开 my.cnf
,没有则创建一个
sudo vim /etc/my.cnf
在文件里添加一行
[mysqld]
skip-grant-tables
重新启动MySQL服务
sudo systemctl start mysqld
执行
sql
mysql -u root
直接不输入密码进入数据库
刷新权限,然后修改密码
sql
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@798';
修改完密码,一定一定一定要把这个删除
sql
[mysqld]
skip-grant-tables
远程连接MySQL数据库
默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。
查看防火墙状态
版本不通,命令不一致,注意辨别
systemctl status firewalld.service
可以看到防火墙是开启状态,需要关闭
开启防火墙
systemctl start firewalld.service
关闭防火墙
bash
systemctl stop firewalld.service
查看mysql 端口号:
sql
show global variables like '%port%';
//查询MySQL占用的端口是多少
SHOW VARIABLES LIKE 'port';
//查询是否开通网络连接到MySQL服务器,skip_networking=ON是不允许,OFF是允许
show variables like 'skip_networking';
修改/etc/my.cnf这个文件,添加一行
sql
skip_networking=OFF
然后重启MySQL服务
sql
systemctl restart mysqld
这时候在远程连接时,提示:is not allowed to connect to this MySQL server
出现该问题的原因是,MySQL数据库只允许自身所在的本机器连接,不允许远程连接。
sql
mysql> use mysql
Database changed
mysql> select host from user where user='root';
+-----------+
| host |
+-----------+
| localhost |
+-----------+
1 row in set (0.00 sec)
mysql> update user set host = '%' where user ='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select host from user where user='root';
+------+
| host |
+------+
| % |
+------+
1 row in set (0.00 sec)
刷新配置,就可以远程连接了
sql
flush privileges;