Centos 7.5 内搭建MySQL5.7(小白版)

优先推荐文章:

mysql5.7在centos7下安装以及主从配置:https://blog.csdn.net/happy_pinocchio/article/details/79592422

 

一,先卸载centos 7自带的mariadb

查看

[root@localhost chunxiaolin]# rpm -qa|grep mariadb

卸载

[root@localhost chunxiaolin]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

查看

[root@localhost chunxiaolin]# rpm -qa|grep mariadb

二,检查是否有MySQL

查看

[root@localhost chunxiaolin]# rpm -qa | grep mysql

mysql57-community-release-el7-8.noarch

卸载

[root@localhost chunxiaolin]# rpm -e --nodeps mysql57-community-release-el7-8.noarch

查看

[root@localhost chunxiaolin]# rpm -qa | grep mysql

 

三,配置YUM源

在MySQL官网中下载YUM源rpm安装包:https://dev.mysql.com/downloads/repo/yum/

# 下载mysql源安装包

[root@localhost chunxiaolin]#

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

[root@localhost chunxiaolin]#

wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

# 安装mysql源

[root@localhost chunxiaolin]# yum -y  localinstall mysql57-community-release-el7-8.noarch.rpm

 若报-bash: wget: command not found,则表明没有安装wget,需要安装,安装命令如下:

Yum -y install wget

安装完成即可以使用。

检查mysql源是否安装成功

[root@localhost chunxiaolin]#  yum repolist enabled | grep "mysql.*-community.*"

[root@localhost chunxiaolin]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# ll

安装

[root@localhost yum.repos.d]# yum -y install mysql-community-server

启动MySQL服务

[root@localhost yum.repos.d]#  systemctl start mysqld

[root@localhost yum.repos.d]#  systemctl start mysqld.service

查看是否启动

[root@localhost yum.repos.d]# systemctl status mysqld.service

开机启动

[root@localhost yum.repos.d]# systemctl enable mysqld

[root@localhost yum.repos.d]#  systemctl daemon-reload

修改root本地登录密码

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

[root@localhost yum.repos.d]# grep 'temporary password' /var/log/mysqld.log

2018-08-17T12:49:33.835763Z 1 [Note] A temporary password is generated for root@localhost: *_wtq)QJ<4j.

这里的临时密码是 *_wtq)QJ<4j.

使用默认的临时密码登陆

用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:

[root@localhost yum.repos.d]# mysql -u root -p

Enter password:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

修改密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

Query OK, 0 rows affected (0.03 sec)

mysql> set password for 'root'@'localhost'=password('MyNewPass4!');

Query OK, 0 rows affected, 1 warning (0.00 sec)

注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误

通过msyql环境变量可以查看密码策略的相关信息:

mysql>  show variables like '%password%';

+---------------------------------------+-------+

| Variable_name                         | Value |

+---------------------------------------+-------+

| default_password_lifetime             | 0     |

| disconnect_on_expired_password        | ON    |

| log_builtin_as_identified_by_password | OFF   |

| mysql_native_password_proxy_users     | OFF   |

| old_passwords                         | 0     |

| report_password                       |       |

| sha256_password_proxy_users           | OFF   |

| validate_password_check_user_name     | OFF   |

| validate_password_dictionary_file     |       |

| validate_password_length              | 4     |

| validate_password_mixed_case_count    | 1     |

| validate_password_number_count        | 1     |

| validate_password_policy              | LOW   |

| validate_password_special_char_count  | 1     |

+---------------------------------------+-------+

14 rows in set (0.01 sec)

 

MySQL官网密码策略详细说明:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy

如何解决ERROR 1819 (HY000): Your password does not satisfy the current policy requirements呢? 这里直接提供解决方案文末有详细的说明

方法一:

必须修改两个全局参数:
首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;

Query OK, 0 rows affected (0.00 sec)

再修改密码的长度

mysql> set global validate_password_length=1;

Query OK, 0 rows affected (0.00 sec)

再次执行修改密码就可以了

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123';

Query OK, 0 rows affected (0.00 sec)

     最后记得刷新权限;

  mysql>flush privileges 

关于密码设置的详细说明

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

方法二:

修改密码策略

在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略

# 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件

validate_password_policy=0

如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:

validate_password = off

重新启动mysql服务使配置生效:

systemctl restart mysqld

方法三:

 也可以 直接再添加新用户     

    CREATE USER ‘root‘@‘%‘ IDENTIFIED BY ‘您的密码‘;

    grant all on *.* to 'root001'@'%' identified by 'Root@@'  with grant option;

   增加root用户指定可以任意IP登录,如果想限制只能让指定IP登录请把%替换成IP地址

默认配置文件路径:

配置文件:/etc/my.cnf 
日志文件:/var/log//var/log/mysqld.log 
服务启动脚本:/usr/lib/systemd/system/mysqld.service 
socket文件:/var/run/mysqld/mysqld.pid

MySQL密码忘记

方法一:

如果忘记root密码,则按如下操作恢复:

vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。

mysql  -u root

update mysql.user set authentication_string=password('123qwe') where user='root' and Host = 'localhost';

flush privileges

方法二:

  问题:如果发现找不到密码!!!!!

   解决:只能通过忘记密码的方式修改密码!!! 在安装的过程中发现找不到密码???折腾了好长时间 通过修改密码找回之后发现、原来之前安装的数据库在了,就没有生产新的数据库!!用的还是之前的配置。

2.看mysql启动了没?初始化数据库了没?  一般直接启动 数据库 就可以 用grep "password" /var/log/mysqld.log    看到随机密码了

修改MySQL的登录设置:

#vi /etc/my.cnf

在[mysqld]的段中加上一句:skip-grant-tables 保存并且退出vi。

重新启动mysqld
#/etc/init.d/mysqld restart ( service mysqld restart )
use mysql 
update user set password=password("12345") where user="root";
mysql 5.7的数据库没有了password字段 用的是authentication_string字段
mysql> update mysql.user set authentication_string=password('root') where user='root' ;
flush privileges;
修改密码之后在改回来

把密码改简单的方法 http://blog.csdn.net/z13615480737/article/details/78907697

MySQL密码忘记:https://www.jb51.net/article/95399.htm

参考文档一:https://www.jb51.net/article/116032.htm

参考文档二:https://www.cnblogs.com/ianduin/p/7679239.html

 

参考

设置开机自启动

设置开机启动 
执行: systemctl enable mysqld 
执行:systemctl daemon-reload

至此,mysql5.7的安装就完成了!!!

文档:https://www.cnblogs.com/YangshengQuan/p/8431520.html

为MySQL5.7配置远程操作权限

进入MySQL

[root@localhost yum.repos.d]# mysql -u root -p 

再输入

mysql> use mysql;
新建用户   ----- MySQL5.7不支持root用户%

新建用户chun

mysql> GRANT ALL PRIVILEGES ON *.* TO 'chun'@'%' IDENTIFIED BY 'root123' WITH GRANT OPTION;

  • 配置默认编码为utf8 
    修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示: 
  • [mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'

关闭防火墙

systemctl stop mysqld.service

用第三方软件测试

mysql5.7以上版本,登录时报1045错误解决办法:https://blog.csdn.net/qq_21386275/article/details/78280370

如果是2003错误,有很多可能,

1.MySQL的权限是否是%,所有IP都可登陆?

2.文件配置,vi /etc/my.cnf

3.防火墙关闭

4.等等问题

参考解决方法:

修改my.cnf文件

vi /etc/my.cnf

在文件中{mysqld}下增加

skip-name-resolve   #跳过域名解析

lower_case_table_names=1 #忽略大小写

重启生效

systemctl restart mysqld.service

 

 

 

你可能感兴趣的:(Centos 7.5 内搭建MySQL5.7(小白版))