Centos 安装mysql问题解决

前端之家收集整理的这篇文章主要介绍了Centos 安装mysql问题解决前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Centos 安装MysqL问题解决

一、正常安装

我们使用YUM源安装MysqL,所以在安装前需要做一下准备工作:

  1. 查看下最新的mysql版本 (不需要点击下载)

  2. 下载MysqL源安装包,从官网可以看到目前(2017.10.23)最新版本是MysqL57-community-release-el7-11.noarch.rpm。

    wget http://dev.MysqL.com/get/MysqL57-community-release-el7-11.noarch.rpm
  3. 安装MysqL (中间需要输入Y 确认)

    yum localinstall MysqL57-community-release-el7-11.noarch.rpm


  4. 检查源是否安装成功

    yum repolist enabled | grep "MysqL.*-community.*"

    如果出现下图则表示源安装成功

  5. 如果需要更改安装MysqL的版本,则可以修改/etc/yum.repos.d/MysqL-community.repo源。

    改变默认安装的MysqL版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。改完之后的效果如下所示:

  6. 安装MysqL(中间需要确定 输入Y)

    yum install MysqL-community-server


安装完成后,MysqL也就安装成功了

  1. 安装好后,启动MysqL服务

    systemctl start MysqLd

    查看MysqL启动状态:

    systemctl status MysqLd
  2. 设置开机启动

    systemctl enable MysqLd
    systemctl daemon-reload
  3. 第一次安装好后,需要修改root本地密码

    MysqL安装完成之后,在/var/log/MysqLd.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录MysqL进行修改MysqL 语句是分号结束!!!

    grep 'temporary password' /var/log/MysqLd.log
    MysqL -uroot -p

    登陆上之后就可以修改密码了:(下面两种方法都可以)

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPassword'; 
    set password for 'root'@'localhost'=password('MyNewPassword');

    因为MysqL5.7默认安装了安全插件,有一些对密码的校验,所以如果你的密码不符合要求,就会报错,当然如果你只是测试使用 或者自己玩,则可以通过修改密码校验的规则

    set global validate_password_policy=0;
    set global validate_password_length=1;

    上面的具体含义可以网上查到。


如果需要设置远程登陆,则需要下面设置

  1. 使用root登陆MysqL

  2. 赋予远程登陆权限

    • 允许root用户在任何地方进行远程登录,并具有所有库任何操作权限:

      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
      
      ##然后刷新授权表
      
      FLUSH PRIVILEGES;
    • 允许root用户在一个特定的IP进行远程登录,并具有所有库特定操作权限:

      GRANT selectinsertupdatedelete ON *.* TO root@"172.16.16.152" IDENTIFIED BY "youpassword";
      
      ##然后刷新授权表
      
      FLUSH PRIVILEGES;
  3. (删除用户授权,需要使用REVOKE命令)

    • REVOKE privileges ON 数据库[.表名] FROM user-name;

    • 具体实例,先在本机登录MysqL:

      MysqL -u root -p”youpassword”

    • 进行授权操作:

      GRANT select,insert,update,delete ON TEST-DB TO test-user@”172.16.16.152” IDENTIFIED BY “youpassword”;

    • 再进行删除授权操作:

      REVOKE all on TEST-DB from test-user;

      该操作只是清除了用户对于TEST-DB的相关授权权限,但是这个“test-user”这个用户还是存在。

    • 最后从用户表内清除用户
      DELETE FROM user WHERE user=”test-user”;
      重载授权表:
      FLUSH PRIVILEGES;
      退出MysqL数据库
      exit

  4. 如果此时还不能进行远程登陆,并且用telnet IP 3306 成功,则可能是防火墙禁用了3306端口修改防火墙规则,或者如果你只是玩玩或者测试用,则可以关闭防火墙。

    systemctl stop firewalld.service #停止firewall
    systemctl disable firewalld.service #禁止firewall开机启动
    firewall-cmd --state #查看默认防火墙状态(关闭显示notrunning,开启后显示running)
  5. 如果是linux和windows混合使用,则需要设置linux上的MysqL不区分大小写

    • 用root登录修改 /etc/my.cnf;
    • 在[MysqLd]节点下,加入一行: lower_case_table_names=1
    • 重启MysqL即可;
  6. 如果需要设置utf8 则也需要在上面配置文件添加一行配置

    ​ default-character-set=utf8

猜你在找的CentOS相关文章