美文网首页
centos7安装mysql5.7

centos7安装mysql5.7

作者: 3f29eb5edacd | 来源:发表于2019-02-11 22:33 被阅读14次

    在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

    1 下载并安装MySQL官方的 Yum Repository

     wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
    

    使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

    yum -y install mysql57-community-release-el7-10.noarch.rpm
    

    之后就开始安装MySQL服务器。

    yum -y install mysql-community-server
    

    这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。

    image.png

    至此MySQL就安装完成了,然后是对MySQL的一些设置。

    2 MySQL数据库设置

    首先启动MySQL

    systemctl start  mysqld.service
    

    查看MySQL运行状态,运行状态如图:

    systemctl status mysqld.service
    
    image.png

    此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

    grep "password" /var/log/mysqld.log
    
    image.png

    如下命令进入数据库:

    mysql -u root -p
    

    输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
    

    这里有个问题,新密码设置的时候如果设置的过于简单会报错:


    image.png

    正确的密码格式是:大写字母+小写字母+数字+符号

    但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

    yum -y remove mysql57-community-release-el7-10.noarch
    

    到这里mysql的安装完成了,但是本地远程连接会报错,被拒绝连接,还有修改一点东西。

    navicat远程连接提示:Host 'xxx' is not allowed to connect to this MySQL server。网上找了一些资料,是mysql未开启mysql远程访问权限导致。

    记录解决方案供以后参考。:

    1.登录到mysql: mysql -uroot -ppwd

    2.查看user表:

    mysql> use mysql
    Database changed
    mysql> select host,user,password from user;
    +------+------+-------------------------------------------+
    | host | user | password |
    +------+------+-------------------------------------------+
    | localhost | root | *826960FA9CC8A87953B3156951F3634A80BF9853 |
    +------+------+-------------------------------------------+
    1 row in set (0.00 sec)

    表中host、user字段标识了可以访问数据库的主机和用户。例如上面的数据就表示只能本地主机通过root用户访问。原来如此,难怪远程连接死活连不上。

    为了让数据库支持远程主机访问,有两种方法可以开启远程访问功能。

    第一种(改表法):

    修改host字段的值,将localhost修改成需要远程连接数据库的ip地址。或者直接修改成%。修改成%表示,所有主机都可以通过root用户访问数据库。为了方便,我直接修改成%。
    命令:
    mysql> update user set host = '%' where user = 'root';

    再次查看user表

    +------+------+-------------------------------------------+
    | host | user | password |
    +------+------+-------------------------------------------+
    | % | root | *826960FA9CC8A87953B3156951F3634A80BF9853 |
    +------+------+-------------------------------------------+
    1 row in set (0.00 sec)

    修改成功,输入命令mysql> FLUSH PRIVILEGES; 回车使刚才的修改生效,再次远程连接数据库成功。

    第二种(授权法):

    例如,你想root使用mypassword从任何主机连接到mysql服务器的话。

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 
    

    如果你想允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.3' IDENTIFIED BY  'mypassword' WITH GRANT OPTION; 
    

    输入命令mysql> FLUSH PRIVILEGES; 回车使刚才的修改生效,再次远程连接数据库成功。bingo.

    别忘记最后的FLUSH PRIVILEGES; 刷新先前的修改。

    我使用的是第一种方法,这么做后,所以的就完成了!

    作者:Honins
    来源:CSDN
    原文:https://blog.csdn.net/honnyee/article/details/81263821
    版权声明:本文为博主原创文章,转载请附上博文链接!

    相关文章

      网友评论

          本文标题:centos7安装mysql5.7

          本文链接:https://www.haomeiwen.com/subject/numceqtx.html