赞
踩
软件配置 | 版本信息 |
---|---|
Linux | CentOS release 7.8.2003 (Core) |
MySQL | 5.7.30 |
CentOS 安装 MySQL 的方式主要有两种:
yum 与 rpm 两种安装方式各有优劣,实际部署中可根据情况进行选择,就安装结果而言都是相同的。
无论采用哪种方式安装 mysql,必须先检查系统中是否留有老版本或其他冲突版本,有的话必须干掉,如果没有可以跳过该步骤。
查看 mysql 安装信息
rpm -qa | grep mysql
查看 mysql 状态
service mysqld status
停止 mysql 服务
service mysqld stop
rpm 卸载 mysql 相关组件
由于依赖关系,需要按照顺序卸载,否则会报错
rpm 卸载顺序为:server >> client >> libs >> common
rpm -ev mysql-community-server-5.6.48-1.el7.x86_64
rpm -ev mysql-community-client-5.6.48-1.el7.x86_64
rpm -ev mysql-community-libs-5.6.48-1.el7.x86_64
rpm -ev mysql-community-common-5.6.48-1.el7.x86_64
这里也可以使用 yum 方式卸载
yum -y remove 一键卸载,可以自动解决依赖关系,更加方便
但也因为 yum remove 会将所有相关的依赖包都一并删除,所以该命令要慎用
yum -y remove mysql
卸载完成后,查找 mysql 相关程序和文件
whereis mysql
find / -name mysql
删除 mysql 相关程序和文件
rm -rf /var/lib/mysql
rm -rf /usr/bin/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql
rm -rf /usr/share/man/man1/mysql.1.gz
删除 mysql 配置文件 /etc/my.cnf
rm -rf /etc/my.cnf
最后,再次查找 mysql 相关信息
rpm -qa | grep mysql
whereis mysql
find / -name mysql
无结果,说明 mysql 已经彻底卸载和删除~
在 CentOS 7 下,默认安装的数据库为 MariaDB(实际上是 MySQL 的一个分支),如果要安装 MySQL 需要先将其卸载,毕竟一山不能容二虎。。。
查看 mariadb 安装信息
rpm -qa | grep mariadb
强制卸载 mariadb(–nodeps 忽略依赖关系强制执行)
rpm -e mariadb-libs-5.5.65-1.el7.x86_64 --nodeps
卸载完成,万事俱备,接下来就可以安装 mysql 船新版本啦~
YUM,全称为 Yellow dog Updater,Modified,是一个在 Fedora 和 RedHat 以及 SUSE、CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次性安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum -y install wget
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
rpm -ivh mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-server
安装过程中 yum 会自动检测依赖包下载安装,等待安装完成即可,网速慢可能要等很久(yum 安装的缺点)。
RPM 是 Red-Hat Package Manager(RPM 软件包管理器)的缩写,原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。
下载地址:https://dev.mysql.com/downloads/mysql/
选择对应的 linux 系统和 x86 版本进行下载
使用 wget 下载或者将下载好的文件直接上传到系统中
wget https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
也可以细化下载,只下载需要的 mysql 组件,有 4 个:server、client、common、libs
解压 mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
按照依赖关系依次安装 rpm 包
rpm 安装顺序为:common >> libs >> client >> server(与 rpm 卸载顺序相反)
rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
在安装 server 组件时可能会报依赖错误,需要根据错误提示下载安装对应的依赖包(rpm 安装的缺点)
yum -y install net-tools
yum -y install perl
安装完成
启动 mysql 服务
systemctl start mysqld
设置 mysql 开启自启
systemctl enable mysqld
查看 mysql 运行状态
systemctl status mysqld
mysql 5.7.4 之前的版本中默认是没有初始密码的,登录时直接回车就可以进入数据库。而之后的版本对密码策略等安全相关操作进行了一些升级,在安装过程中,mysql 会在日志中生成一个临时登录密码。
获取临时密码
grep 'temporary password' /var/log/mysqld.log
可以看到 W)OcyMlBn3sl 即为随机生成的临时登录密码。使用该密码登录 mysql,输入命令:
mysql -uroot -p'W)OcyMlBn3sl'
登录成功,啦啦啦~
修改登录密码
mysql> set password for 'root'@'localhost'=password('你自己的密码');
或
mysql> alter user root@localhost identified by '你自己的密码';
若你将密码设置得过短或者过于简单,mysql 会报错:
这是因为 mysql 5.7 安装了密码安全检查插件(validate_password)
默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于 8 位。
如果不满足要求就会提示错误:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
解决方案如下:
step 1:更改有效密码策略
mysql> set global validate_password_policy=0;
此时,新密码长度大于等于 8 位才有效,否则报错。
step 2:更改有效密码长度
mysql> set global validate_password_length=1;
validate_password_length 的有效值最低为 4,当设置的值小于 4 时,实际生效的值依然为 4。当设置的值超过 4 时,才为用户设定值。即密码长度最低为 4 位。
step 3:重新设定密码
mysql> set password for root@localhost=password('1234');
mysql 安装完成之后,root 账号只允许在本地登陆,如果想要远程访问,需要授予权限。
mysql> grant all privileges on *.* to 'root' @'%' identified by '1234';
刷新权限,使设置生效。
mysql> flush privileges;
查看 mysql 默认编码,可以看到有两个不是 utf8,这你能忍?
mysql> show variables like '%character%';
修改配置文件 /etc/my.cnf,在 [mysqld] 下添加如下配置:
character-set-server=utf8
init_connect='set names utf8'
修改配置后需要重启服务
systemctl restart mysqld
登录 mysql 再次查看编码,咳咳咳~
功能 | 命令 |
---|---|
启动 mysql 服务 | systemctl start mysqld |
关闭 mysql 服务 | systemctl stop mysqld |
重启 mysql 服务 | systemctl restart mysqld |
查看 mysql 状态 | systemctl status mysqld |
登录 mysql | mysql -uroot -p |
mysql 文件 | 文件路径 |
---|---|
配置文件 | /etc/my.cnf |
日志文件 | /var/log/mysqld.log |
服务启动脚本 | /usr/lib/systemd/system/mysqld.service |
socket | /var/run/mysqld/mysqld.pid |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。