您的位置:首页 > 运维架构 > Linux

在Linux(centos7)中安装MySQL并实现远程连接

2020-08-18 11:22 489 查看

参考连接:https://blog.csdn.net/lizy928/article/details/82531749
1、安装wget

sudo yum install wget

2、下载安装包

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

3、安装软件

sudo rpm -ivh mysql57-community-release-el7-8.noarch.rpm
sudo yum install mysql-server

4、获取临时密码
第一次用临时密码登录,当第一次启动MySQL服务器时,为MySQL根用户生成一个临时密码

vim /var/log/mysqld.log
/temporary password

如果这个文件为空:
(1).删除原来安装过的mysql残留的数据(这一步非常重要,问题就出在这)

rm -rf /var/lib/mysql

(2).重启mysqld服务

systemctl restart mysqld

(3).再去找临时密码

grep ‘temporary password’ /var/log/mysqld.log

localhost:后边的就是临时密码
5、配置mysql安装项:

sudo mysql_secure_installation

输入新密码(密码必须至少包含8个字符并且至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符。)
更改后的root密码:Mysql@123(我自己的做记录用)
配置时有一些选择,根据自己需求选择y或者n,选错也不要紧,后面可以改。

6、看到All done!表示配置已经完成,尝试远程访问一下,发现出现错误:错误码2003- Can’t connect to MySQL server on ‘192.168.12.102:3306’ (111 Connection refused)
一、原因是我先前配置时没有允许远程访问,现在更改配置
(1)首先登陆mysql:

mysql -uroot -p密码

(2)查看mysql库中的user表的host字段
使用mysql库:

use mysql;

查询信息:

select user,host from user;


发现root用户只允许本机访问(localhost),将其更改为%即可

(3)修改root用户的host字段,命令:

update user set host="%" where user="root";

(4)使本次修改立即生效,命令:

flush privileges;


此时远程连接就可以用了
二、如果还不能用,那可能的原因是防火墙没关,
查看防火墙状态,如果是active,将其关闭
(1)查看防火墙状态

systemctl status firewalld

(2)关闭

systemctl stop firewalld && systemctl disable firewalld

测试远程连接

三、如果还不行,需要设置开放端口号,在服务器控制台找到 安全组-配置规则-添加安全组规则
我是自己搭建的openstack,直接在用户的计算–访问与安全–管理安全规则–添加规则,添加mysql就行了
如果你用的是阿里云的服务器,请参考最上面的链接进行添加。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: