跳到主要内容

linux安装mysql

· 阅读需 11 分钟

安装前说明:

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,故按图选择:

image.png

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方式)

参考:记一次阿里云安装mysql (rpm安装)

详细:

源安装包下载: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 (回车输入刚修改的密码)