Linux 配置MySQL环境(三)
一、下载
1. 官网下载MySQL
进入页面 ( 在这里我们选择社区版) ,点击 MySQL Community (GPL) Downloads »
进入页面,选择 MySQL Community Server
进入页面,选择 MySQL Community Server
根据你服务器的配置选择,我服务器是 CentOS 7 所以 Operating System 选择 Red Hat Enterprise Linux / Oracle Linux ,OS Version 选择 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86,64-bit),选择第一个点击 Download 下载。
2. 百度网盘快速下载MySQL
二、安装
1、通过 Xftp 将 MySQL 安装包拷贝到 Linux
cd /usr/local
创建mysql文件夹
mkdir mysql
ls查看
2、解压缩
# 在当前目录下(mysql)下创建一个 mysql-8.0.26 文件夹 mkdir mysql-8.0.26 # 解压安装包到该目录下 tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.26
3、安装 common、libs、client、server
rpm -qa | grep mariadb
输入如下指令删除
rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
输入如下安装命令行,安装common、libs、client、server
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm --nodeps --force rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm --nodeps --force
PS注意: 如果有冲突,命令后面加上这个命令:
--nodeps 表示不检查依赖关系,即忽略依赖关系进行升级。 --force 表示强制进行升级,即强制覆盖原有软件包。 例如: rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm --nodeps --force
4、初步连接
mysqld --initialize
1.目录授权 chown mysql:mysql /var/lib/mysql -R; 2.启动mysql服务 systemctl start mysqld.service; 3.设置MySQL服务在系统重启后自动启动 systemctl enable mysqld;
6、查看数据库的初始化密码
输入指令
# 获取MySQL临时密码 (本次我使用的这个) grep 'temporary password' /var/log/mysqld.log 或者 cat /var/log/mysqld.log | grep password
注意:
写了密码后密码是不显示的,不要以为自己没有写入
三、卸载
systemctl stop mysqld
停止 MySQL 之后查询 MySQL 的安装文件:
rpm -qa | grep -i mysql
卸载上述查询出来的所有的 MySQL 安装包
rpm -e mysql-community-client-5.7.27-1.el7.x86_64 --nodeps rpm -e mysql-community-client-plugins-8.0.32-1.el7.x86_64 --nodeps rpm -e mysql-community-libs-8.0.32-1.el7.x86_64 --nodeps rpm -e mysql-community-devel-8.0.32-1.el7.x86_64 --nodeps rpm -e mysql-community-server-8.0.32-1.el7.x86_64 --nodeps rpm -e mysql-community-common-8.0.32-1.el7.x86_64 --nodeps rpm -e mysql-community-libs-compat-8.0.32-1.el7.x86_64 --nodeps rpm -e mysql-community-client-8.0.32-1.el7.x86_64 --nodeps
删除MySQL的数据存放目录
rm -rf /var/lib/mysql/
删除MySQL的数据存放目录
rm -rf /etc/my.cnf.rpmsave
四、常用设置
1. 修改 root 用户密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
这里可能会提示 Your password does not satisfy the current policy requirements,意思是您的密码不符合当前规定的要求,你要么就把你的密码设置得复杂点,要么就去降低密码的校验规则。
在 Linux 上安装 MySQL 时会自动安装一个校验密码的插件,默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。修改密码时新密码是否符合当前的策略,不满足则会提示ERROR
官网
上能查到这个密码校验的规则,文档中搜索:validate_password
所以可以将这个限制密码位数设小一点,复杂度类型调底一点
# 将密码复杂度校验调整简单类型 (当validate_password.policy为0时,表示不进行密码复杂度校验,任何长度的密码都可以通过校验。) set global validate_password.policy = 0; # 设置密码最少位数限制为 4 位 set global validate_password.length = 4;
PS:注意虽然更改了默认的密码校验难度和长度 (比如默认为8位,改成了4位。难度改成0) ,但是在第一次重新设置密码时候,
可能仍然出现错误:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements,此时必须第一次设置密码长度为8位才不报错,更改密码成功后才能查看validate_password插件的以下参数,当然,validate_password插件必须已经安装,MySQL5.7是默认安装的。
参考:MySQL 8 密码校验设置调整说明
简单的密码设置成功
查看MySQL数据库中与密码验证相关的变量 【☆☆☆】
SHOW VARIABLES LIKE 'validate_password%';
五、使用新密码登录
exit;
输入指令重新登陆
mysql -uroot -proot
六、开启远程访问
语法格式:CREATE USER <用户名> [ IDENTIFIED ] BY [ PASSWORD ] <口令>
# mysql 8.0 以下 create user 'root'@'%' IDENTIFIED BY '2023root'; # mysql 8.0 create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '2023root';
按顺序执行如下代码
# 1.创建新的用户 用来远程访问 create user 'root'@'%' identified with mysql_native_password by '2023root'; # 2.授权root用户所有的权限( '并且加上 with grant option ,表示该用户可以授予权限给其他用户 ') grant all privileges on *.* to 'root'@'%' with grant option; (或者输入这个命令, 也是授权所有权限,不过不可给其他用户授权:grant all on *.* to 'root'@'%';) # 3.使修改的设置生效(并且不需要重启MySQL服务) flush privileges;
以上3个命令的步骤图如下:
PS: mysql8.0 的默认密码验证不再是 password 。所以在创建用户时,create user ‘username’@‘%’ identified by ‘password’; 客户端是无法连接服务的,所以在创建用户的时候需要加上 WITH mysql_native_password
设置生效
七、开放 3306 端口
# 1.用于将 TCP 端口 3306 添加到防火墙的公共区域(public zone), # 以便允许外部流量访问 MySQL 数据库。--permanent 选项表示修改将永久生效,即使系统重新启动。 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 2.用于重启防火墙服务,以便使之前的修改立即生效。 systemctl restart firewalld.service # 3.用于重新加载防火墙配置文件,以便使之前的修改立即生效。它与重启防火墙服务的效果相同,但是不会停止或重新启动防火墙服务。 firewall-cmd --reload
八、MySQL 安装默认使用美国的时区,北京时间比美国晚 8 小时
mysql -uroot -p
再执行如下代码
set global time_zone='+8:00';
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!
云掣基于多年在运维领域的丰富时间经验,编写了《云运维服务白皮书》,欢迎大家互相交流学习:
《云运维服务白皮书》下载地址:https://fs80.cn/v2kbbq
想了解更多大数据运维托管服务、数据库运维托管服务、应用系统运维托管服务的的客户,欢迎点击云掣官网沟通咨询:https://yunche.pro/?t=shequ