linux下载安装mysql5.7教程详解

5 centos7安装MySQL 5.7.31

5.1 准备工作

安装MySQL在集群中任意一台机器上, 这里我安装在hadoop91(192.168.86.91)机器上

5.2 下载

点击 MySQL Community Downloads下载

5.3 删除Centos默认安装的MariaDB

# 查找mariadb安装包名字
rpm -qa | grep -i mariadb 
# 卸载mariadb安装包,mariadb-libs-5.5.52-1.el7.x86_64是上一条命令查出结果
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64 

5.4 上传文件并解压

创建要上传的目录

cd /opt/myinstall
mkdir mysql

将MySQL的安装包文件上传至linux的/opt/myinstall/mysql目录后解压

# 解压到当前目录
tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar

解压到指定目录中 tar -xvf 压缩文件 -C /指定目录

5.5 rpm安装

按照以下顺序依次安装

rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
5.5.1 如果安装报错

如果安装mysql-community-server-5.7.31-1.el7.x86_64.rpm时报错, 说明缺少依赖包libaio

[root@hadoop91 mysql]# rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
警告:mysql-community-server-5.7.31-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
	libaio.so.1()(64bit) 被 mysql-community-server-5.7.31-1.el7.x86_64 需要
	libaio.so.1(LIBAIO_0.1)(64bit) 被 mysql-community-server-5.7.31-1.el7.x86_64 需要
	libaio.so.1(LIBAIO_0.4)(64bit) 被 mysql-community-server-5.7.31-1.el7.x86_64 需要

点击pkgs.org下载libaio的rpm包:libaio-0.3.109-13.el7.x86_64.rpm

上传到linux后执行

rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm

重新执行就不会报错了

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

5.6 启动mysqld服务

注意: 命令后有多余空格执行会报错

执行以下命令

# 启动服务
systemctl start mysqld
# 查看服务状态
systemctl status mysqld

其他命令

# 停止服务
systemctl stop mysqld
# 重启服务
systemctl restart mysqld		

5.7 修改登录密码

MySQL5.6及以后版本出处于安全考虑,root密码不为空。所以在MySQL的安装过程中,会生成一个随机密码。

5.7.1 设置跳过密码登录

修改mysql的配置文件

vi /etc/my.cnf

在最后一行添加

# 跳过密码登录
skip-grant-tables

保存后重启服务

systemctl restart mysqld

5.7.2 修改登录密码

输入mysql -u root -p后直接双击两次回车登录

查看root用户的密码命令

mysql> use mysql;

mysql> select authentication_string,password_expired,user  from user;

修改密码为123456

mysql> update mysql.user set authentication_string=password('123456') where user='root';

mysql> update user set password_expired='N' where user = 'root';

解释下为什么要加password()

mysql 4.1之后的版本中,密码采用password()函数哈希后保存。
具体保存在mysql数据库user表的authentication_string字段中。
相应文件为/mysqld/mysql-5.7/data/mysql/user.MYD。

如果执行修改密码的sql报错

修改validate_password_policy参数的值, 修改允许的密码长度

mysql> set global validate_password_policy=0;

mysql> set global validate_password_length=1;

重启mysqld服务

输入quit退出mysql交互界面

修改/etc/my.cnf文件将设刚刚添加在最后一行的skip-grant-tables删除掉或注释掉

vi /etc/my.cnf

保存后重启mysqld服务

systemctl restart mysqld

使用修改后的密码, 重新登录验证是否修改成功

mysql -u root -p

输入刚刚设置的密码123456, 出现mysql交互页面则安装成功

5.8 修改mysql 编码

修改配置文件

vi /etc/my.cnf
[mysqld]下添加

collation_server=utf8_general_ci
character_set_server=utf8
default-storage-engine=INNODB

在[client]下添加(如果没有[client],则创建[client][client]
default_character-set=utf8

重启mysql服务

systemctl  restart mysqld

登录mysql

mysql -u root -p 123456

输入show variables like ‘character_set_%’; 可查看编码

mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)

5.9 授权无主机登录

进入mysql交互模式

mysql -u root -p

执行以下命令

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

sql命令解释:

123456是密码
*.* 表示所有数据库下的所有表
'root'@'%' 表示所有主机的root
5.9.1 如果设置无主机登录报错
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

原因是因为密码设置的过于简单, MySQL有密码强度校验(密码设置时必须包含大小写字母、特殊符号、数字,并且长度大于8位)

解决办法: 必须修改两个全局参数(临时的更改配置,如果重新进入mysql,需要重新设置)

1)修改validate_password_policy参数的值(0 or LOW / 1 or MEDIUM / 2 or STRONG)

mysql> set global validate_password_policy=0; 

2)修改密码的长度

mysql> set global validate_password_length=1;

3)重新执行命令

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

5.10 安装成功

至此安装配置成功

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值