linux安装mysql
安装前说明:
1.该文实践于centos系统。
2.软件安装应安装至
/opt
下,该文已做修正。
0.安装前准备
# 查看自己系统架构:(X86、ARM)
uname -a
# 查看centos版本
cat /etc/redhat-release
# 开机命令允许执行
chmod +x /etc/rc.local
1.安装基础工具
lrzsz 用处:用来传输文件使用(主要是我习惯了这种方式)
yum -y install lrzsz
zip unzip 用处:解压和压缩文件夹,方便传输
yum install -y unzip zip
安装
gcc-c++
依赖(常用软件会使用到该依赖,例如nginx、redis)# 查询是否安装gcc-c++,若安装了不必再装
yum list installed | grep "gcc-c++"
yum -y install gcc-c++安装
wget
:(最简版系统不自带)# 查看是否安装了wget,若安装不必再装
rpm -qa | grep "wget"
yum -y install wget安装
make
:安装工具(最简版系统不自带)rpm -qa | grep "make"
yum -y install make
2.mysql旧版本安装(rpm安装)
mysql下载访问:MySQL :: Download MySQL Community Server
按系统选择,这里使用的是centos 8,故按图选择:
Product Version:mysql版本 Operating System:系统版本(centos对应Red Hat...) OS Version:系统版本号和对应指令集
下载安装包文件:
8.0.22以前的版本没有Client Plugins
(包含),以后的版本都有Client Plugins
,有的话需要下载
如果需要下载Client Plugins
如果有的话需要下载如下:
RPM Package, MySQL Server
RPM Package, Client Utilities
RPM Package, Client Plugins
RPM Package, MySQL Configuration
RPM Package, Shared Libraries
RPM Package, MySQL Server
RPM Package, Client Utilities
RPM Package, MySQL Configuration
RPM Package, Shared Libraries
创建mysql文件夹,并将下载好的安装包上传至此文件夹:
[root@192 ~]# mkdir /opt/mysql && cd /opt/mysql
将安装包上传至
/opt/mysql/
开始安装:
卸载自带的mariadb数据库:
rpm -qa | grep mariadb
# 删除mariadb数据库
# 注意:如果没有安装mariadb,则不需要执行如下命令(替换为自己的软件名)
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
cd /opt/mysql
# 注意:你一定要按照顺序进行安装,因为rpm包之间相互依赖。
rpm -ivh mysql-community-common-8.0.20-1.el8.x86_64.rpm
# 如果有的话,没有则忽略:
rpm -ivh mysql-community-client-plugins-8.0.31-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.20-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.0.20-1.el8.x86_64.rpm
# 安装完成后检查是否安装成功:
rpm -qa | grep mysql
执行期间错误:错误:依赖检测失败:...
[root@localhost mysql]# rpm -ivh mysql-community-libs-8.0.31-1.el8.x86_64.rpm
警告:mysql-community-libs-8.0.31-1.el8.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEY
错误:依赖检测失败:
mysql-community-client-plugins = 8.0.31-1.el8 被 mysql-community-libs-8.0.31-1.el8.x86_64 需要
意思是安装mysql-community-libs
依赖于mysql-community-client-plugins
;
去安装mysql-community-client-plugins
再安装mysql-community-libs
即可。
没出现该错误忽略即可。
安装最后一个rpm包:
rpm -ivh mysql-community-server-8.0.20-1.el8.x86_64.rpm --force --nodeps
安装完成后:
# 查看版本:
[root@192 mysql]# mysql --version
mysql Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
# 启动mysql
[root@192 mysql]# systemctl start mysqld
# 设置开机启动mysql服务
[root@192 mysql]# systemctl enable mysqld
# 查看mysql运行状态
[root@192 mysql]# systemctl status mysqld
# 获取自动生成的临时密码
[root@192 mysql]# grep 'A temporary password' /var/log/mysqld.log
2022-11-26T09:19:16.363419Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 【密码】
# 利用临时密码登录到Mysql客户端
[root@192 mysql]# mysql -u root -p
(回车输入临时密码,此时已登录上了)
后续需要【mysql修改密码】,详情见【补充】部分.
设置远程访问: (没有退出mysql命令不需要重新登录,从use mysql开始执行)
修改完密码以后登录进mysql,按序执行:
/usr/bin/mysql -uroot -p
- (输入刚修改的密码)
use mysql;
update user set Host='%' where User='root';
FLUSH PRIVILEGES;
(使修改生效)服务器添加安全组配置,打开3306端口,linux服务器防火墙打开3306端口
exit
退出mysql命令,重启mysql服务,尝试远程连接
mysql不再解析主机名: mysql默认都会根据ip解析主机名,通过该配置可跳过反解析,加快mysql连接速度
[mysqld]
# 跳过ip反解析主机名
skip-name-resolve参考:mysql could not be resolved: Name or service not known_Mysql_脚本之家
mysql生命周期相关命令:
# 1、启动
systemctl start mysqld
# 或 service mysqld start
# 2、停止
systemctl stop mysqld
# 或 service mysqld stop
# 3、重启
systemctl restart mysqld
# 或 service mysqld restart默认的配置文件在
/etc/my.conf
,Linux下是my.conf,windows下是my.ini 参考:Linux下MySQL配置文件my.ini位置扩展:
rpm安装默认目录:
数据文件:/var/lib/mysql/
配置文件模板:/usr/share/mysql
mysql客户端工具目录:/usr/bin
日志文件:/var/log/mysqld.log
pid,sock文件目录:/tmp/
3.mysql最新版安装(yum方式)
详细:
源安装包下载:https://dev.mysql.com/downloads/repo/yum/ 选择自己系统。
mkdir /opt/mysql
上传至该文件夹安装mysql源(根据自己下载的文件修改):
yum localinstall -y mysql57-community-release-el7-8.noarch.rpm
检测是否安装完成
yum repolist enabled | grep "mysql.*-community.*"
安装mysql
yum install mysql-community-server
可能会报错,如报错请先执行,再执行安装即可:
yum module disable mysql
参考:centos7.8安装mysql5.7时Error: Unable to find a match: mysql-community-server
设置开机启动mysql服务
systemctl enable mysqld
查看安装的mysql版本
rpm -aq | grep -i mysql
启动mysql服务
systemctl restart mysqld
查看mysql初始密码
grep 'A temporary password' /var/log/mysqld.log
执行上面步骤可以获得mysql初始数据库密码,对应mysql用户为root
后续需要【mysql修改密码】,详情见【补充】部分.
设置远程访问: (没有退出mysql命令不需要重新登录,从use mysql开始执行)
修改完密码以后登录进mysql,按序执行完:
/usr/bin/mysql -uroot -p(刚修改的密码)
use mysql;
update user set Host='%' where User='root';
执行完,最后补充(使修改生效):
FLUSH PRIVILEGES;
服务器添加安全组配置,打开3306端口,linux服务器防火墙打开3306端口
exit
退出mysql命令,重启mysql服务,尝试远程连接
mysql不再解析主机名: mysql默认都会根据ip解析主机名,通过该配置可跳过反解析,加快mysql连接速度
[mysqld]
# 跳过ip反解析主机名
skip-name-resolve参考:mysql could not be resolved: Name or service not known_Mysql_脚本之家
mysql生 命周期相关命令:
# 1、启动
systemctl start mysqld
# 或 service mysqld start
# 2、停止
systemctl stop mysqld
# 或 service mysqld stop
# 3、重启
systemctl restart mysqld
# 或 service mysqld restart默认的配置文件在
/etc/my.conf
,Linux下是my.conf,windows下是my.ini 参考:Linux下MySQL配置文件my.ini位置扩展:
rpm安装默认目录: 数据文件:/var/lib/mysql/ 配置文件模板:/usr/share/mysql mysql客户端工具目录:/usr/bin 日志文件:/var/log/mysqld.log pid,sock文件目录:/tmp/
补充
【mysql修改密码】
单独记录:区分5.7版本和8.0版本,命令不同
进入mysql:
/usr/bin/mysql -uroot -p
回车然后输入刚才获取到的密码,即进入mysql中
设置密码规则(密码强度检查等级和最小长度):
该方式修改,重启mysql会重置配置,可自行百度如何配置相关my.conf
先进行修改密码:
alter user 'root'@'localhost' identified by 'Root_12root';
根据自己安装的mysql版本选择:
- mysql 5.7+:
set global validate_password_policy=0;
set global validate_password_length=1;
- mysql 8.0+:
set global validate_password.policy=0;
set global validate_password.length=1;
查看mysql密码规则(length好像最小就是4):
SHOW VARIABLES LIKE 'validate_password%';
重新设置密码:
alter user 'root'@'localhost' identified by '自己设置密码';
此时完成密码设置。可进行登陆验证:
exit
,退出mysql命令。
/usr/bin/mysql -uroot -p
(回车输入刚修改的密码)