引言:mysql数据库安装linux版本,附带多次踩过的坑,记录一下,也给大家做个参考。
安装包地址:https://pan.baidu.com/s/1DHGGkMBmg7wmz6RBvLshLQ 提取码:y8t3
一:安装前准备
(1)先去官网下载5.7版本,嫌麻烦可直接在上方分享的网盘内下载,还有其他学习资料分享,rpm离线安装包方式安装,简单快捷。 将tar包暂时放入opt文件夹下,只做示例,具体位置自己选择。
(2)删除已有mysql,先输入以下命令查看本机自带环境
rpm -qa | grep mysql
rpm -qa |grep -i mariadb
(3)如果存在mariadb-libs-5.5.56-2.el7.x86_64等,则删除
rpm -e mariadb-libs-5.5.56-2.el7.x86_64
#问题记录:若出现
#error: Failed dependencies:
# libmysqlclient.so.18()(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
# libmysqlclient.so.18(libmysqlclient_18)(64bit) is needed by (installed) postfix-2:2.10.1-6.el7.x86_64
解决方案:yum remove mariadb-libs-5.5.56-2.el7.x86_64
#如果无网络上方yum卸载失败,则强制卸载mariadb:rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
(4)再次确认已经删除
rpm -qa | grep mysql
rpm -qa | grep -i mariadb
(5)解压mysql-rpm包(-C 之后接解压后的地址如/opt/mysql)
tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar -C /opt/mysql
(6)安装 进入刚刚填入的地址
cd /opt/mysql
rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
(7)初始化mysql(一般选择安全模式初始化较好)
#初始化mysql
#安全”模式来初始化,为 root 用户生成一个root 账户密码并将该密码标记为过期
mysqld --initialize
#不使用安全”模式来初始化,不会为 root 用户生成一个密码
mysqld --initialize-insecure
(8)启动mysql服务
service mysqld start
#问题记录:若出现
#Job for mysqld.service failed because the control process exited with error code. See "systemctl status # mysqld.service" and "journalctl -xe" for details.
rm -rf /var/lib/mysql
service mysqld restart(重启服务)
systemctl enable mysqld(防火墙设置)
systemctl start mysqld
(8)服务启动成功后查找root初始随机密码
cat /var/log/mysqld.log | grep ‘temporary password is generated’
最后的小段字符串即为初始密码:如“+pNoqVboJ4<>”
(9)登录并修改root密码
mysql -u root -p 回车输入初始密码,进入mysql命令界面如下。
mysql> set password=‘Abcde@123’;
#问题记录:若密码太简单出现报错
#若设密码为'123456' 出现ERROR 1819 (HY000): Your password does not satisfy the current policy requirements(密码策略问题异常信息)
#设置密码策略(https://blog.csdn.net/hello_world_qwp/article/details/79551789)
#1、查看 mysql 初始的密码策略,
SHOW VARIABLES LIKE 'validate_password%';
#2、设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
set global validate_password_policy=LOW;
#3、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,
set global validate_password_length=6;
#4重新设置密码(下方两种方式二选一)
mysql> set password='123456';
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
(9)若想同网段内其他主机能够访问(一般都需要开启,除非是生产环境,只准本机查询),则需要开启授权远程访问
mysql> grant all privileges on . to ‘root’@’%’ identified by ‘123456’;
(10)Linux开通mysql服务的防火墙端口
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --zone=public --add-port=3306/tcp --permanent #开启3306端口
firewall-cmd --reload #重启防火墙 (开放完新的端口后,需要重新启动防火墙)
(11)如果出席问题解决不了,需要卸载mysql进行重装
rpm -qa | grep -i mysql (查看已安装部分)
#强制卸载
rpm -e --nodeps mysql-community-common-5.7.28-1.el7.x86_64
rpm -e --nodeps mysql-community-libs-5.7.28-1.el7.x86_64
rpm -e --nodeps mysql-community-client-5.7.28-1.el7.x86_64
rpm -e --nodeps mysql-community-server-5.7.28-1.el7.x86_64
#然后删除mysql相关的服务。
chkconfig --list | grep -i mysql
chkconfig --del mysql
#然后找出OS中分散的mysql文件夹
find / -name mysql
#删除查找出来的mysql文件夹
rm -rf /run/lock/subsys/mysql
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /etc/selinux/targeted/tmp/modules/100/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql
rm -rf /etc/my.cnf