Centos7 yum安装配置Web服务器系列(五)安装 Mysql

Centos7服务器安装Mysql,并配置用户、远程链接、链接php。

rpm 安装 Mysql5.7 相应的 yum源

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

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”
rpm 执行安装包 二进制包(Binary)以及源代码包(Source)两种。
二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。
官方CentOS 7 rpm源中不包含Mysql5.7源

安装Mysql

yum install mysql-community-server

启动Mysql和开机启动

systemctl start  mysqld
systemctl enable mysqld

修改密码

  • 获取初始化密码
grep "password" /var/log/mysqld.log
Mysql初始密码
  • 链接数据库
mysql -uroot -p
  • 输入获取到的初始化密码

通过以下命令修改root密码

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

密码不能过于简单,否则会如下报错,这里网上有些修改Mysql密码验证规则的,楼主是觉得没必要的,毕竟要保证数据安全,就不能用弱密码


密码不符合规则

密码规则 包含大写 小写 特殊符号如 . ? * 等

创建用户和设置用户可远程登陆

  • 创建用户命令模板:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
  • 参数说明:
    • username - 你将创建的用户名,

    • host - 指定该用户在哪个主机上可以登陆,此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;

    • password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。

如创建一个test用户,密码为test123,可以进行远程登录:

mysql> create user 'test'@'%' identified by 'test123'

删除用户

如果用户创建错了,肯定要支持删除操作,使用命令:

mysql> drop user 'username'@'host';

用户授权

  • 授权test用户有testDB数据库的某一部分权限:
 mysql> grant select,update on testDB.* to test@'%' identified by 'test123';
  • 授权test用户有testDB数据库的所有操作权限:
mysql> grant all privileges on testDB.* to 'test'@'%' identified by 'test123';
  • 授权test用户拥有所有数据库的某些权限:
mysql> grant select,delete,update,create,drop on *.* to 'test'@'%' identified by 'test123';
  • 授权test用户拥有所有数据库的所有操作权限:
mysql> grant all on *.* to 'test'@'%' identified by 'test123';

privileges - 用户的操作权限,如select,delete,update,create,drop等,如果要授予所有的权限可使用all(参考第二种授权方式);% 表示对所有非本地主机授权,不包括localhost。
参考: mysql 用户管理和权限设置

  • 刷新权限:
mysql> FLUSH PRIVILEGES
  • 因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
yum -y remove mysql57-community-release-el7-10.noarch

常见问题

1)php 在使用pdo链接mysql的时候会出现Permission Deny错误,解决方案:

  • 临时关闭Selinux
setenforce 0

发现可以正常连接了,修改/etc/sysconfig/selinux文件可以永久地禁用它。
将文件中 SELINUX=enforcing 修改为:SELINUX=disabled

2)mysql_front远程连接时,提示:The 'INFORMATION_SCHEMA.SESSION_VARIABLES' feature is disabled; see the documentation for 'show_compatibility_56' 错误,解决方案:

从mysql5.7.6开始information_schema.global_status已经开始被舍弃,为了兼容性,此时需要打开 show_compatibility_56

mysql> select * from information_schema.global_status limit 3;
ERROR 3167 (HY000): The 'INFORMATION_SCHEMA.GLOBAL_STATUS' feature is disabled; see the documentation for 'show_compatibility_56'
  • 查看show_compatibility_56其值
mysql> show variables like '%show_compatibility_56%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| show_compatibility_56 | OFF   |
+-----------------------+-------+
1 row in set (0.01 sec)
  • 把show_compatibility_56打开
mysql> set global show_compatibility_56=on;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%show_compatibility_56%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| show_compatibility_56 | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)

mysql> select * from information_schema.global_status limit 3;
+-----------------------+----------------+
| VARIABLE_NAME         | VARIABLE_VALUE |
+-----------------------+----------------+
| ABORTED_CLIENTS       | 0              |
| ABORTED_CONNECTS      | 0              |
| BINLOG_CACHE_DISK_USE | 0              |
+-----------------------+----------------+
3 rows in set, 1 warning (0.00 sec)

完成上述操作后,即可用mysql_front连接到mysql数据库了。

本文参考文献:
Centos7中 mysql5.7 用户 创建 、授权、远程登录
show_compatibility_56

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容