Centos 安装mysql问题解决

来源:互联网 发布:北京赛车软件下载 编辑:程序博客网 时间:2024/06/06 23:16

Centos 安装mysql问题解决

一、正常安装

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

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

    mysqlsource

  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

    downrpm

  3. 安装mysql源 (中间需要输入Y 确认)

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

    installmysql
    installmysql

  4. 检查源是否安装成功

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

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

    complete

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

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

    mysqlversion

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

    yum install mysql-community-server

    installok
    installok

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

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

    systemctl start mysqld

    查看mysql启动状态:

    systemctl status mysqld

    sqlruning

  2. 设置开机启动

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

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

    grep 'temporary password' /var/log/mysqld.logmysql -uroot -p

    mysqllogon

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

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

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

    nsatisfy

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

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

    satisfyisOK


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

  1. 使用root登陆mysql

    rootlogon

  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;

      givetel

  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 #停止firewallsystemctl 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