mysql部署(1)单节点安装卸载

本文详细描述了如何在CentOS8系统上下载并安装MySQL8.0.36,包括安装步骤、常见错误处理、命令行管理、配置文件检查以及远程访问的设置。最后介绍了如何安全卸载MySQL。
摘要由CSDN通过智能技术生成

以8.0.36版本为例

一、下载安装

1、准备工作

(1)查看系统版本

cat /etc/redhat-release

  

(2)查看是否安装了 MySQL

rpm -qa | grep mysql

查看是否有安装 mariadb,该软件与 MySQL 数据库有冲突,需要手动卸载

# 如果是 CentOS7 可以检测出已经安装了 mariadb
rpm -qa | grep mariadb

如果安装过

rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
2、下载

(1)进入MySQL :: MySQL Community Downloads

点击MySQL Community Server


(2)选择 MySQL 的版本,注意 MySQL 的版本需要与 Linux 的版本对应上,如我选择

   筛选后在列表中选择tar包

  

(3)点击download,此时有两种方法

  • 第一种,直接点击 No thanks, just start my download 进行下载,然后通过上传工具上传到服务器
  • 第二种,右键 No thanks, just start my download,选择复制链接,然后在服务器中通过 wget 命令下载到服务器

我这里是通过wget命令下载的

cd /usr/local/mysql_package
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36-1.el6.x86_64.rpm-bundle.tar
3、解压
tar -xvf mysql-8.0.36-1.el6.x86_64.rpm-bundle.tar
4、安装

必须按照顺序执行命令,否则会出现依赖错误的报错,如果安装过程中出现错误,可以参考下一步。

#1、
rpm -ivh mysql-community-common-8.0.36-1.el6.x86_64.rpm
#2、
rpm -ivh mysql-community-client-plugins-8.0.36-1.el6.x86_64.rpm
#3、
rpm -ivh mysql-community-libs-8.0.36-1.el6.x86_64.rpm
#4、
rpm -ivh mysql-community-client-8.0.36-1.el6.x86_64.rpm 
#5、
rpm -ivh mysql-community-icu-data-files-8.0.36-1.el6.x86_64.rpm
#6、
rpm -ivh mysql-community-devel-8.0.36-1.el6.x86_64.rpm
#7、
rpm -ivh mysql-community-server-8.0.36-1.el6.x86_64.rpm
5、常见安装错误

(1)未按照规定顺序安装软件:按照顺序安装即可解决

(2)libc.so.6 缺失

大概率是因为下载的 MySQL版本与 Linux 版本对应不上,可以检查一下 MySQL 压缩包后缀名里面的参数是否与系统版本匹配

  • centos7 系统对应的 MySQL 是 el7
  • centos8 系统对应的 MySQL 是 el8

(3)openssl 缺失

安装 openssl-devel 即可解决

rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm

使用 yum install openssl-devel -y 安装 openssl-devel 

yum install openssl-devel -y

 再次安装该软件包即可

rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm

(4) perl 和 libaio 缺失

安装 prel 和 libaio 即可解决。

查看与 perl 相关的软件

yum list perl

安装:

yum install -y perl.x86_64

 查看与 libaio 相关的软件

yum list libaio

安装

yum install -y libaio*

(5)Header V4 RSA/SHA256 Signature, key ID a8d3785c: NOKEY

如mysql-community-devel安装报错

解决方法:加上 --nodeps,就是安装时不检查依赖关系,比如你这个rpm需要devel,但是你没装devel,这样你的包就装不上,用了--nodeps你就能装上了。

sudo rpm -ivh --nodeps  mysql-community-devel-8.0.36-1.el6.x86_64.rpm

同样地报错

rpm -ivh mysql-community-server-8.0.36-1.el6.x86_64.rpm 
warning: mysql-community-server-8.0.36-1.el6.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID a8d3785c: NOKEY
error: Failed dependencies:
	mysql-community-client(x86-64) >= 8.0.11 is needed by mysql-community-server-8.0.36-1.el6.x86_64

也可以使用以下命令解决

 sudo rpm -ivh --nodeps  mysql-community-server-8.0.36-1.el6.x86_64.rpm
6、检查与清理
6.1、检查:

(1)查看已安装的 MySQL 的版本

mysql -V

或者

mysql --version

(2)查看自动生成的my.cnf配置文件所在目录:可以看到为 /etc/my.cnf

查看内容如下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.0/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
6.2、清理:

删除无用的包

rm -rf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar
rm -rf /usr/local/mysql_package/
7、安装后常见问题
7.1、socket 文件报错

如执行 mysql -v报错:Can't connect to local MySQL server through socket '***' 。

有两种解决方法:

(1)

二、 命令与配置

1、服务器开关命令 mysqld

mysqld是关于服务器端的程序。

1.1、查看 MySQL 服务状态
systemctl status mysqld
 1.2、开启 MySQL 服务

(1)使用systemctl 启动

systemctl start mysqld

(2)使用service 启动

service mysqld start
 1.3、设置 MySQL 服务开机自启
systemctl enable mysqld
1.4、 重启 MySQL 服务

(1)使用systemctl 重启

systemctl restart mysqld

 (2)使用service 重启

service mysqld restart

 再次查看 MySQL 服务状态,可以看到 MySQL 服务已经成功运行:

1.5、暂时关闭 MySQL 服务

服务器重新启动之后,MySQL 服务会再次启动

(1)使用systemctl 关闭

systemctl stop mysqld

(2) 使用service关闭

service mysqld stop
 1.6、永久关闭 MySQL 服务

服务器重新启动之后,MySQL 服务也不会再次启动

systemctl disable mysqld
2、客户端命令mysql

mysql是mysql自带的客户端程序 一般都在cmd或者终端下操作,用于登陆到mysql服务器。

2.1、 获取 root 用户的初始密码

第一次运行 MySQL 服务时,会进行初始化加载,同时会生成一个 root 用户的初始密码,可以通过查看日志文件 /var/log/mysqld.log 获取到 root 用户的初始密码,后续可手动修改密码

cat /var/log/mysqld.log | grep 'password'

2.2、修改roo的密码 

(1)先使用初始密码登陆到mysql服务

mysql -h 主机名 -P 端口号 -u 用户名 -p密码

如我执行

mysql -u root -p

(2)再修改密码,密码有两种形式:

 ① 密文:mysql8的默认密码是caching_sha2_password 方式加密的,登陆时需要解密

alter user 'root'@'localhost' identified by 'Mysql(41)';

 

② 明文:指定为mysql_native_password格式,即为明文密码,修改后使用该密码登陆即可。

#修改密码
alter user 'root'@'localhost' identified with mysql_native_password by 'Mysql#41';
#刷新权限
flush privileges;

(3)修改 MySQL 校验密码的安全策略【可选,一般不建议修改】

# 设置密码长度的最低位数
set global validate_password.length=4;
# 设置密码的安全等级,修改密码安全策略为低(只校验密码长度,至少8位)
set global validate_password.policy=LOW;
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |	决定是否使用该插件(及强制/永久强制使用):ON/OFF/FORCE/FORCE_PLUS_PERMANENT
| validate_password_dictionary_file    |        |	插件用于验证密码强度的字典文件路径
| validate_password_length             | 8      |	密码最小长度
| validate_password_mixed_case_count   | 1      |	密码至少要包含的小写字母个数和大写字母个数
| validate_password_number_count       | 1      |	密码至少要包含的数字个数
| validate_password_policy             | MEDIUM |	密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG
| validate_password_special_char_count | 1      |	密码至少要包含的特殊字符数
+--------------------------------------+--------+
7 rows in set (0.02 sec)
													0/LOW:只检查长度。
                                                    1/MEDIUM:检查长度、数字、大小写、特殊字符。
                                                    2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
  2.3、退出登陆 
exit;

三、远程连接

1、端口开放问题

第一次连接提示无法连接到主机,这是因为 3306 端口未开放,如果是云服务器,防火墙的端口、安全组的端口都需要开放,需要开放3006端口。

2、root用户设置远程访问权限

user 表中的 host 字段表示用户的访问权限:localhost:只可以本地访问;%:允许任意地方访问

mysql -u root -p
use mysql;
select host, user, plugin from user;

#设置 root 用户任意地方可以访问
update user set host='%' where user='root';
#刷新权限
flush privileges;
#再次查看
select host, user, plugin from user;

3、密码问题

mysql8的默认密码是加密的,caching_sha2_password 加密方式在远程访问时候不支持,需要修改为 mysql_native_password。(如果第一次修改密码已经修改为mysql_native_password,这一步跳过)。

修改密码策略的同时,将当前 root 用户的密码的验证策略也修改一下,否则当前用户的密码会失效,使得 root 用户无法使用原密码登录 MySQL 服务

#修改密码
alter user 'root'@'%' identified with mysql_native_password by 'Mysql#41';
#刷新权限
flush privileges;

使用可视化工具、远程机器测试, 这时候就可以远程连接了:

四、mysql卸载

1、查看MySQL安装版本
rpm -qa|grep -i mysql

2、关闭MySQL服务
systemctl stop mysqld.service

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值