Centos7 安装MySQL 5.7图文详细教程

一. 检查是否安装过MySQL

检查当前系统是否安装过mysql

执行安装命令前,先执行查询命令

1. CentOS6

rpm -qa|grep mysql

如果存在mysql-libs的旧版本包如下:
在这里插入图片描述
请先执行卸载命令:rpm -e --nodeps mysql-libs

2. CentOS7

先执行查询:rpm -qa|grep mariadb

如果存在mariadb执行删除:rpm -e --nodeps mariadb-libs
在这里插入图片描述

二. 安装MySQL

1. 将压缩包传到服务器

我这里用的是mysql-5.7.16 , 如需其他版本可自行下载
这里是mysql-5.7.16的压缩包 :

链接:https://pan.baidu.com/s/1zNmv-0Io2BQmp0e3go72Gg
提取码:wjud

2. 解压文件

tar -zxv mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar.gz

3. 安装(按顺序执行)

rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm

查看安装版本:mysqladmin --version

查看mysql用户:id mysql

在这里插入图片描述

4. MySQL服务初始化

执行下面的命令初始化:

mysqld --initialize --user=mysql

使用mysql系统用户以安全模式为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码

查看密码:cat /var/log/mysqld.log

在这里插入图片描述

5. 修改初始化密码

要修改MySQL,首先必须启动MySQL服务,使用初始化密码登录后,才能修改密码:

启动MySQL服务:systemctl start mysqld.service

关闭MySQL服务:systemctl stop mysqld.service

在这里插入图片描述

修改密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

在这里插入图片描述

6. MySQL自启动

查看mysql是否自启动(默认自启动

systemctl list-unit-files|grep mysqld.service

在这里插入图片描述
如不是enabled可以运行如下命令设置自启动

systemctl enable mysqld.service

7. 修改字符集问题

测试mysql的使用:

在这里插入图片描述

出现了编码问题,原因:查看mysql编码(show variables like '%character%';),发现默认编码是latin1
在这里插入图片描述

修改编码,需要修改mysql配置文件:vi /etc/my.cnf

在mysqld下添加一行编码配置:character_set_server=utf8
在这里插入图片描述
保存并退出,重启mysql服务:systemctl restart mysqld

已生成的库表字符集如何变更?

修改数据库的字符集:alter database mydb character set 'utf8';

修改数据表的字符集:alter table mytbl convert to character set 'utf8';

在这里插入图片描述

8. 远程访问MySQL

接下来用宿主机navicat客户端访问MySQL服务,报如下错误:(确保防火墙已关闭

在这里插入图片描述

原因:默认情况下,mysql不允许远程连接。只允许localhost连接

执行:select host,user,authentication_string,select_priv,insert_priv from mysql.user;

在这里插入图片描述

解决方案:

  1. 创建新的用户(此处省略)
  2. 修改root用户访问权限

9. 授予root远程访问权限

授权命令:

grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

该权限如果发现没有该用户,则会直接新建一个用户。

比如

grant all privileges on *.* to root@'%' identified by 'root';  #授予通过网络方式登录的的root用户,对所有库所有表的全部权限,密码设为root.

在这里插入图片描述

扩展:

查看当前用户权限:show grants;

查看当前用户的全局权限:select * from user ;

查看某用户的某个表的权限:select * from tables_priv;

收回权限命令:

revoke 权限1,权限2,…权限n on 数据库名称.表名称 from 用户名@用户地址 ;

收回全库全表的所有权限:REVOKE ALL PRIVILEGES ON mysql.* FROM li4@localhost;

收回mysql库下的所有表的插删改查权限:REVOKE select,insert,update,delete ON mysql.* FROM li4@localhost;

必须用户重新登录后才能生效

10. 测试连接

连接测试:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_45277608/article/details/127714913