ToB企服应用市场:ToB评测及商务社交产业平台

标题: Linux 安装 MySQL【CentOS】 [打印本页]

作者: 农民    时间: 2024-6-21 13:45
标题: Linux 安装 MySQL【CentOS】
一、安装 MySQL 的准备工作

1. 检察系统版本

  1. cat /etc/redhat-release
复制代码

2. 检察系统是否已经安装过 MySQL

检察是否安装了 MySQL
  1. rpm -qa | grep mysql
复制代码
检察是否有安装 mariadb,该软件与 MySQL 数据库有冲突,须要手动卸载
  1. # 如果是 CentOS7 可以检测出已经安装了 mariadb
  2. rpm -qa | grep mariadb
复制代码

3. 移除 MySQL 相干的软件

如果系统中没有安装过与 MySQL 相干的软件,直接跳到下一步
  1. rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
复制代码
二、安装 MySQL

   官网传送门
  1. 找到压缩包的下载链接

点击 MySQL Community Server

选择 MySQL 的版本
   注意 MySQL 的版本须要与 Linux 的版本对应上
  
  一样平常情况下,直接选择第一个安装包即可,第一个安装包的版本会不定时的更新,与本文所用的安装包有略微的差别,但是并不影响具体的使用
  截止 2023-5-11 最新版为 mysql-8.0.33-1.el8.x86_64.rpm-bundle.tar
  

2. 下载压缩包

   此时有两种方法
  
  

这里通过 wget 下令下载到服务器,安装到 usr/local 目录,总共 838.4M,下载速率比力慢,须要耐烦等待
  1. cd /usr/local
复制代码
  1. wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar
复制代码

3. 检察下载好的压缩包

  1. ll
复制代码

4. 解压

解压之后会有很多包产生,为了方便检察,将其解压到 /usr/local/mysql_package 里面
  1. mkdir /usr/local/mysql_package
复制代码
  1. cd /usr/local
  2. /mysql_package
复制代码
  1. tar -xvf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar -C /usr/local/mysql_package
复制代码

5. 使用 rpm 安装

必须按照顺序实行下令,否则会出现依靠错误的报错,如果安装过程中出现错误,可以参考下一步给出的总结
  1. rpm -ivh mysql-community-common-8.0.31-1.el8.x86_64.rpm
复制代码
  1. rpm -ivh mysql-community-client-plugins-8.0.31-1.el8.x86_64.rpm
复制代码
  1. rpm -ivh mysql-community-libs-8.0.31-1.el8.x86_64.rpm
复制代码
  1. rpm -ivh mysql-community-client-8.0.31-1.el8.x86_64.rpm
复制代码
  1. rpm -ivh mysql-community-icu-data-files-8.0.31-1.el8.x86_64.rpm
复制代码
  1. rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
复制代码
  1. rpm -ivh mysql-community-server-8.0.31-1.el8.x86_64.rpm
复制代码
6. 常见错误总结

(1)未按照规定顺序安装软件

   按照顺序安装即可办理
  

(2)libc.so.6 缺失

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

(3)openssl 缺失

   安装 openssl-devel 即可办理
  1. rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
复制代码

使用 yum install

openssl-devel -y 安装 openssl-devel
  1. yum install
  2. openssl-devel -y
复制代码

再次安装该软件包即可
  1. rpm -ivh mysql-community-devel-8.0.31-1.el8.x86_64.rpm
复制代码

(4)perl 和 libaio 缺失

   安装 prel 和 libaio 即可办理
  

检察与 perl 相干的软件
  1. yum list perl
复制代码

安装
  1. yum install
  2. -y perl.x86_64
复制代码
检察与 libaio 相干的软件
  1. yum list libaio
复制代码

安装
  1. yum install
  2. -y libaio*
复制代码
7. 检察已安装的 MySQL 的版本

  1. mysql -V
复制代码
  1. mysql --version
复制代码

8. 删除无用的包

  1. rm -rf /usr/local/mysql-8.0.31-1.el8.x86_64.rpm-bundle.tar
复制代码
  1. rm -rf /usr/local/mysql_package/
复制代码
三、配置 MySQL 服务

1. 简单配置

检察 MySQL 服务状态
  1. systemctl status mysqld
复制代码
开启 MySQL 服务
  1. systemctl start mysqld
复制代码
设置 MySQL 服务开机自启
  1. systemctl enable mysqld
复制代码
重启 MySQL 服务
  1. systemctl restart mysqld
复制代码
再次检察 MySQL 服务状态,可以看到 MySQL 服务已经成功运行
  1. systemctl status mysqld
复制代码

2. 下令剖析

(1)检察 MySQL 服务状态

  1. systemctl status mysqld
复制代码
(2)暂时关闭 MySQL 服务

服务器重新启动之后,MySQL 服务会再次启动
  1. systemctl stop mysqld
复制代码
(3)永久关闭 MySQL 服务

服务器重新启动之后,MySQL 服务也不会再次启动
  1. systemctl disable mysqld
复制代码
(4)开启 MySQL 服务

  1. systemctl start mysqld
复制代码
(5)设置 MySQL 服务开机自启

  1. systemctl enable mysqld
复制代码
(6)重启 MySQL 服务

  1. systemctl restart mysqld
复制代码
四、简单的使用 MySQL

1. 获取 root 用户的初始密码

第一次运行 MySQL 服务时,会举行初始化加载,同时会生成一个 root 用户的初始密码,可以通过检察日志文件 /var/log/mysqld.log 获取到 root 用户的初始密码,后续可手动修改密码
  1. cat /var/log/mysqld.log | grep 'password'
复制代码

2. 使用 root 用户登录到 MySQL 服务

  1. mysql -u root -p
复制代码

3. 修改 root 的密码

(1)修改初始化密码

  1. alter user 'root'@'localhost' identified by 'BuGu123456!';
复制代码

(2)修改 MySQL 校验密码的安全策略【可选,一样平常不建议修改】

  1. # 设置密码长度的最低位数
  2. set global validate_password.length=4;
复制代码
  1. # 设置密码的安全等级,修改密码安全策略为低(只校验密码长度,至少8位)
  2. set global validate_password.policy=LOW;
复制代码

4. 测试是否正常工作

  1. show databases;
复制代码

5. 退出 MySQL 情况

  1. exit;
复制代码

五、长途链接 MySQL

1. 第一次长途连接测试

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

(1)开放 3306 端口

  1. firewall
  2. -cmd --zone=public --add-port=3306/tcp --permanent
复制代码
(2)重新加载服务

  1. firewall
  2. -cmd --reload
复制代码
(3)检察端标语是否开放

  1. firewall
  2. -cmd --zone=public --list-port
复制代码

2. 第二次长途连接测试

可以看到提示该 root 用户没有长途访问的权限,不被允许长途链接到 MySQL 数据库

(1)切换到 MySQL 数据库

  1. mysql -u root -p
复制代码
  1. use mysql;
复制代码
(2)检察用户的访问权限

user 表中的 host 字段表示用户的访问权限

  1. select host, user, plugin from user;
复制代码
  注意:此时 root 用户并没有被授权长途访问 MySQL 服务,下图中的 host 字段应该为 localhost,而不是 %,由于我的失误,下面这张图片并不是该步骤对应的图片,在此展示的图片中,root 用户的 host 字段应为 localhost
  

(3)设置 root 用户任意地方可以访问

  1. update user set host='%' where user='root';
复制代码
(4)刷新权限

  1. flush privileges;
复制代码
(5)再次检察

  1. select host, user, plugin from user;
复制代码
  颠末修改,root 用户的 host 字段已经成功被修改为 %,表示 root 用户可以长途访问 MySQL 服务
  

3. 第三次长途连接测试

可以看到提示密码校验方式不被允许长途链接到 MySQL 数据库

   caching_sha2_password 加密方式在长途访问时候不支持,须要修改为 mysql_native_password
  (1)修改密码策略

注意、注意、注意!!!
修改密码策略的同时,将当前 root 用户的密码的验证策略也修改一下,否则当前用户的密码会失效,使得 root 用户无法使用原密码登录 MySQL 服务,现在我知道的办理办法就是重新安装 MySQL
  1. mysql -u root -p
复制代码
  1. alter user 'root'@'%' identified with mysql_native_password by 'BuGu123456!';
复制代码
(2)刷新权限

  1. flush privileges;
复制代码
4. 第四次长途连接测试

连接成功

六、数据的导入和导出

1. 导入数据到 MySQL 数据库

进入 MySQL 服务
  1. mysql -uroot -p
复制代码
创建新的数据库
  1. create database test;
复制代码
连接到目标数据库
  1. use test;
复制代码
运行指定路径的 SQL 文件
  1. source /root/test.sql;
复制代码
测试
  1. select * from user;
复制代码

2. 将 MySQL 数据库的数据导出

返回 Linux 界面,将名为 test的数据库备份到指路径的 test1.sql 文件中
  1. mysqldump -uroot -p test > /root/test1.sql
复制代码
完成后,使用 ll

下令可以检察到导出的 SQL 文件,也即完成备份
  1. ll
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4