CentOS7.x 下 MySQL 安装

2016-10-29  本文已影响0人  cuihairu

MySQL 搭建

MySQL 在被Orcal 收购之后,开源界担心mysql会被闭源,在CentOS 7.x已经将默认的 MySQL 切换为 Mariadb,Mariadb 是mysql的一个分支,是兼容mysql产品的。

Mariadb

  1. 安装

yum install -y mysql #但是这个默认安装的是Mariadb

yum install -y mysql-devel

yum install -y mariadb-server mariadb

  1. 系统相关

systemctl start mariadb  #启动MariaDB

systemctl stop mariadb  #停止MariaDB

systemctl restart mariadb  #重启MariaDB

systemctl enable mariadb  #设置开机启动

  1. 连接数据库

mysql -u root -p

MySQL

MySQL官网

RPM安装


#下载 RPM 包

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

# 安装RPM 包

rpm -ivh mysql57-community-release-el7-9.noarch.rpm

# 安装 会提示导入 orcal的密钥

yum install -y mysql-community-server

# 安装之后 默认替换 MariaDB包

yum install -y mysql-devel

问题收集

  1. 获取随机生成的密码

从mysql 5.7开始 为了增强安全性 在第一次登录不在密码为空了 而是随机生成一段密码保存到了 err.log文件中

RPM包 安装 默认 在 /var/log/mysqld.log

mysql> select @@log_error;
+---------------------+
| @@log_error         |
+---------------------+
| /var/log/mysqld.log |
+---------------------+
1 row in set (0.00 sec)

查找密码:

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

#log:
2016-10-10T14:54:47.017230Z 1 [Note] A temporary password is generated for root@localhost: NUTgOlNww1/q
  1. 设置密码

  # 停止 mysql 服务

  systemctl stop  mysqld.service

  #默认第一次进数据库的时候是没有密码的,但有时候进不去 就需要先禁用授权表再进。

  #禁用授权表

  #方法1:
  vim /etc/my.cnf

  #在[mysqld]下加入skip-grant-tables

  [mysqld]
  skip-grant-tables

  #方法2: 执行命令启动增加参数

  /usr/bin/mysqld_safe --skip-grant-tables &

  # 更新密码:

  # 选择 数据库
  use mysql

  # 更新密码
  update user set authentication_string=password('*0D3CED9BEC10A777AEG23Cml353A8C08X633045E') where User='root' and Host='localhost';


  #保存 并注释掉 skip-grant-tables
  flush privileges;



  # 更新密码还可会遇到如下错误
  # You must reset your password using ALTER USER statement before executing this statement.

   vim /etc/my.cnf

   #在 [mysqld]下加入 validate_password=OFF

   validate_password=OFF

   #重启 mysql服务

   systemctl restart mysqld

   #重新登录mysql

   mysql -u root -p mysql

   #进入mysql 后重新设置密码 这里设置的暂时的密码 *0D3CED9BEC10A777AEG23Cml353A8C08X633045E

   #老版本:

   set password = password('*0D3CED9BEC10A777AEG23Cml353A8C08X633045E');

   #新版:
   set password = '*0D3CED9BEC10A777AEG23Cml353A8C08X633045E';
   #最后 注释掉 validate_password=OFF 重启mysql

错误

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

vim  /etc/my.conf

plugin-load=validate_password.so
validate-password=FORCE_PLUS_PERMANENT

#skip-grant-tables
##
#validate_password=OFF
上一篇下一篇

猜你喜欢

热点阅读