当前位置: 首页 > news >正文

0. MySQL在Centos 7环境安装

说明

  1. 安装与卸载过程中,用户需全部切换为root。安装完成后,普通用户也可使用。
  2. 初期练习阶段,mysql暂不进行用户管理,全部使用root用户操作,以便尽快熟悉mysql语句。待学习用户管理后,再考虑新建普通用户。

1. 卸载不要的环境

  1. 先检查是否有 mariadb 存在:
[whb@VM-0-3-centos ~]$ ps ajx | grep mariadb 13134 14844 14843 13134 pts/0 14843 S+ 1005 0:00 grep --color=auto mariadb -1SL 14975S+ 19010 19187 19010 19010? -1 Sl 27 16:55 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock
mariadb与mysqld什么关系? -> 结论: mariadb 是一个相似版本的 mysql. 两者高度兼容, 但是尽量不要同时运行.
MariaDB和MySQL都是开源的关系型数据库管理系统,它们之间存在紧密的联系,但也有一定的区别:
  • 起源与发展:MySQL是最流行的开源数据库之一,由瑞典MySQL AB公司开发,后被Sun Microsystems收购,Sun又被Oracle收购。由于担心Oracle对MySQL闭源,MySQL的创始人之一带领部分开发人员创建了MariaDB。因此,MariaDB可以看作是MySQL的一个分支,继承了MySQL的很多代码和特性 。
  • 兼容性:在很多方面MariaDB与MySQL高度兼容,它们使用相似的SQL语法,数据文件格式也有一定的兼容性。在Centos 7环境安装文档中,安装MySQL前需要检查并卸载系统中可能存在的MariaDB,这是因为二者可能会产生冲突,同时存在时可能导致服务异常、配置混乱等问题。而且,二者在很多命令和操作上相似,如启动、停止服务,查看配置文件等操作指令类似。
  • 功能特性差异:虽然MariaDB在大部分功能上与MySQL相似,但在一些特性上存在差异。在存储引擎方面,MariaDB默认的Aria存储引擎,相比MySQL默认的InnoDB引擎,在某些场景下性能有所不同。此外,MariaDB在查询优化、安全特性等方面也有自己的特点。
  1. 停止mariadb服务:
[whb@VM-0-3-centos ~]$ systemctl stop mariadb.service
输入root密码进行验证。3. 检查停止是否完成:
[whb@VM-0-3-centos ~]$ ps axj | grep mariadb 13134 14976 14975 13134 pts/0 14975 S+ 1005 0:00 grep --color=auto mariadb

2. 检查系统安装包

[whb@VM-0-3-centos ~]$ rpm -qa | grep mariadb # 或者 [whb@VM-0-3-centos ~]$ rpm -qa | grep mysql
示例输出:
[root@bite-alicloud mysql]# rpm -qa | grep mysql mysql-community-common-5.7.41-1.el7.x86_64 mysql-community-server-5.7.41-1.el7.x86_64 mysql57-community-release-el7-11.noarch mysql-community-client-5.7.41-1.el7.x86_64 mysql-community-libs-5.7.41-1.el7.x86_64

3. 卸载这些默认安装包

卸载显示出来的mariadb/mysql安装包,如:
[whb@VM-0-3-centos ~]$ sudo yum remove mariadb
需逐个卸载找到的安装包,并备份 /etc/my.cnf/var/lib/mysql数据。
也可以级联卸载:
rpm -qa | grep mysql | xargs(把前面结果拼接在remove后面) yum -y remove

4. 获取mysql 官方yum源

  1. 访问Index of /232905获取mysql官方yum源。
  2. 注意要安装与自己系统版本一致的mysql版本,避免软件兼容性问题。可通过以下命令查看系统版本:
[root@VM-0-2-centos ~]# cat /etc/redhat-release CentOS Linux release 7.8.2003 (Core)
  1. 在Index of /232905找到适合系统版本的资源,下载到本地后上传至Linux服务器。

5. 安装mysql yum源,对比前后yum源

  1. 安装前
[whb@VM-0-3-centos 9.9]$ ls mysql57-community-release-el7-10.noarch.rpm [whb@VM-0-3-centos 9.9]$ ls /etc/yum.repos.d/ -al total 88 drwxr-xr-x. 2 root root 4096 Apr 9 15:43. drwxr-xr-x. 106 root root 12288 Apr 12 10:50.. -rw-r--r-- 1 root root 2523 Dec 26 19:31 Centos-Base.repo -rw-r--r-- 1 root root 614 Nov 10 18:42 CentOS-Base.repo_bak -rw-r--r-- 1 root root 2523 Jun 16 2018 CentOS-Base.repo.bak -rw-r--r-- 1 root root 1309 Apr 8 2020 CentOS-CR.repo -rw-r--r-- 1 root root 649 Apr 8 2020 CentOS-Debuginfo.repo -rw-r--r-- 1 root root 230 Nov 10 18:42 CentOS-Epel.repo -rw-r--r-- 1 root root 314 Apr 8 2020 CentOS-fasttrack.repo -rw-r--r-- 1 root root 630 Apr 8 2020 CentOS-Media.repo -rw-r--r-- 1 root root 998 Dec 11 2018 CentOS-SCLo-scl.repo -rw-r--r-- 1 root root 971 Oct 29 2018 CentOS-SCLo-scl-rh.repo -rw-r--r-- 1 root root 1331 Apr 8 2020 CentOS-Sources.repo -rw-r--r-- 1 root root 7577 Apr 8 2020 CentOS-Vault.repo -rw-r--r-- 1 root root 616 Apr 8 2020 CentOS-x86_64-kernel.repo -rw-r--r-- 1 root root 1919 Apr 8 23:57 docker-ce.repo -rw-r--r-- 1 root root 1050 Nov 1 04:33 epel.repo -rw-r--r-- 1 root root 1149 Nov 1 04:33 epel-testing.repo -rw-r--r-- 1 root root 173 Dec 9 16:08 google-chrome.repo
  1. 安装中
[whb@VM-0-3-centos 9.9]$ rpm -Uvh mysql57-community-release-el7-10.noarch.rpm warning: mysql57-community-release-el7-10.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Permission denied) # 如果上面出错了 [whb@VM-0-3-centos 9.9]$ sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm [sudo] password for whb: warning: mysql57-community-release-el7-10.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:mysql57-community-release-el7-10 ################################# [100%]
  1. 安装后
[whb@VM-0-3-centos 9.9]$ ls /etc/yum.repos.d/ -al total 96 drwxr-xr-x. 2 root root 4096 Apr 12 11:04. drwxr-xr-x. 106 root root 12288 Apr 12 10:50.. -rw-r--r-- 1 root root 2523 Dec 26 19:31 Centos-Base.repo -rw-r--r-- 1 root root 614 Nov 10 18:42 CentOS-Base.repo_bak -rw-r--r-- 1 root root 2523 Jun 16 2018 CentOS-Base.repo.bak -rw-r--r-- 1 root root 1309 Apr 8 2020 CentOS-CR.repo -rw-r--r-- 1 root root 649 Apr 8 2020 CentOS-Debuginfo.repo -rw-r--r-- 1 root root 230 Nov 10 18:42 CentOS-Epel.repo -rw-r--r-- 1 root root 314 Apr 8 2020 CentOS-fasttrack.repo -rw-r--r-- 1 root root 630 Apr 8 2020 CentOS-Media.repo -rw-r--r-- 1 root root 998 Dec 11 2018 CentOS-SCLo-scl.repo -rw-r--r-- 1 root root 971 Oct 29 2018 CentOS-SCLo-scl-rh.repo -rw-r--r-- 1 root root 1331 Apr 8 2020 CentOS-Sources.repo -rw-r--r-- 1 root root 7577 Apr 8 2020 CentOS-Vault.repo -rw-r--r-- 1 root root 616 Apr 8 2020 CentOS-x86_64-kernel.repo -rw-r--r-- 1 root root 1919 Apr 8 23:57 docker-ce.repo -rw-r--r-- 1 root root 1050 Nov 1 04:33 epel.repo -rw-r--r-- 1 root root 1149 Nov 1 04:33 epel-testing.repo -rw-r--r-- 1 root root 173 Dec 9 16:08 google-chrome.repo -rw-r--r-- 1 root root 1627 Apr 5 2017 mysql-community.repo # 安装了mysql yum源 -rw-r--r-- 1 root root 1663 Apr 5 2017 mysql-community-source.repo

6. 看看能不能正常工作

[whb@VM-0-3-centos 9.9]$ yum list | grep mysql Repository epel is listed more than once in the configuration el7-10 installed 1.9.2-4.el7 base 2.0.9-3.el7 epel mysql57-community-release.noarch el7-10 installed 1.5.2-6.el7 1.14.2-1.el7 epel base 2.9.10-2.el7 epel epel base calligra-kexi-driver-mysql.x86_64 2.9.10-2.el7 epel 5.8.1-1.el7 1:2.2.36-8.eL7 dmlite-plugins-mysql.x86_64 1.14.2-1.el7 epel

7. 安装mysql服务

[whb@VM-0-3-centos 9.9]$ sudo yum install -y mysql-community-server [sudo] password for whb: Loaded plugins: aliases, auto-update-debuginfo, fastestmirror, protectbase Repository epel is listed more than once in the configuration ... Installing : mysql-community-common-5.7.33-1.el7.x86_64 # 公共模块 Installing : mysql-community-libs-5.7.33-1.el7.x86_64 # 库 Installing : mysql-community-client-5.7.33-1.el7.x86_64 # 客户端 Installing : mysql-community-server-5.7.33-1.el7.x86_64 # 服务器 ... #安装了服务和客户端
若安装报错,查看第16步《常见问题》。

8. 查看配置文件和数据存储位置

[whb@VM-0-3-centos 9.9]$ ls /etc/my.cnf /etc/my.cnf [whb@VM-0-3-centos 9.9]$ sudo ls /var/lib/mysql ....

9. 启动服务

[whb@VM-0-3-centos 9.9]$ systemctl start mysqld.service ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units === Authentication is required to manage system services or units. Authenticating as: root Password: ==== AUTHENTICATION COMPLETE ===

10. 查看启动服务

[whb@VM-0-3-centos 9.9]$ ps axj |grep mysqld 1 23183 23182 23182? -1 Sl 27 0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid 13134 23243 23242 13134 pts/0 23242 S+ 1005 0:00 grep --color=auto mysqld

11. 登陆方法一【不行就下一个】

  1. 获取临时root密码:
[whb@VM-0-3-centos 9.9]$ sudo grep 'temporary password' /var/log/mysqld.log 2021-04-12T03:23:46.153263Z 1 [Note] A temporary password is generated for root@localhost: yLMalT:v+5l*
  1. 使用临时密码登录:
[whb@VM-0-3-centos 9.9]$ mysql -uroot -p Enter password:
  1. 修改密码策略(可关闭密码强度检查):
mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_length=1; Query OK, 0 rows affected (0.00 sec)
  1. 修改本地登录密码(暂不授权远程登录):
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'qwer@wu.888'; Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
若安装的是最新的mysql,可能没有临时密码,root默认没有密码。

12. 登陆方法二【不行就下一个】

若安装的最新mysql没有临时密码,root默认无密码,可尝试直接使用客户端登陆。

13. 登陆方式三【应该行了吧】

  1. 打开mysql配置文件:
[root@bite-alicloud mysql]# vim /etc/my.cnf
  1. [mysqld]最后一栏配置加入skip-grant-tables选项,并保存退出。
  2. 重启mysql服务:
[root@bite-alicloud mysql]# systemctl restart mysqld
  1. 登陆:
[root@bite-alicloud mysql]# mysql -uroot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.41 MySQL Community Server (GPL) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

14. 设置开机启动[可以不设]

#开启开机自启动 systemctl enable mysqld systemctl daemon-reload

15. 配置my.cnf

  1. 配置my.cnf,主要是数据库客户端和服务器的编码格式等:
[whb@VM-0-3-centos 9.9]$ cat /etc/my.cnf # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html [mysql] #default-character-set=utf8 ,暂不设置,mysql有bug,汉字不回显 [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 leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # 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 port=3306 #(端口号) datadir=/var/lib/mysql #(存放路径) socket=/var/lib/mysql/mysql.sock #(本地通信套接字文件路径) # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 log-error=/var/log/mysqld.log #(日志) pid-file=/var/run/mysqld/mysqld.pid #(进程 ID 文件路径,方便管理服务。) character-set-server=utf8 #(默认编码) default-storage-engine=innodb #(默认存储引擎)
port=3306 #(端口号)
datadir=/var/lib/mysql #(存放路径)
socket=/var/lib/mysql/mysql.sock #(本地通信套接字文件路径)
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log #(日志)
pid-file=/var/run/mysqld/mysqld.pid #(进程 ID 文件路径,方便管理服务。)
character-set-server=utf8 #(默认编码)
default-storage-engine=innodb #(默认存储引擎)
  1. 配置完毕,重启mysql即可。

16. 常见问题

  1. mysql已经配置了客户端服务器utf8编码,但是无法输入中文确保您在终端命令行中可以输入中文:
[whb@VM-0-3-centos ~]$ env | grep LANG LANG=en_US.utf8
  1. 安装遇到秘钥过期的问题
  • 报错信息示例:Failing package is: mysql - community - client - 5.7.39 - 1.el7.x86_64,GPG Keys are configured as: file:///etc/pki/rpm - gpg/RPM - GPG - KEY - mysql
  • 解决方案:rpm --import https://repo.mysql.com/RPM - GPG - KEY - mysql - 2022

相关文章:

  • 区块链技术发展现状与应用前景分析
  • c++返回对象,返回引用,返回指针有什么区别?
  • spel 多层list嵌套表达式踩坑记
  • Spring AI入门及案例、模型讲解、向量化和RAG等高级应用…
  • 每日Prompt:每天上班的状态
  • 如何在 HTML 中添加按钮
  • Kafka入门-集群基础环境搭建(JDK/Hadoop 部署 + 虚拟机配置 + SSH 免密+Kafka安装启动)
  • 乾元通渠道商中标西藏2024年应急装备采购配置项目
  • SSM 框架核心知识详解(Spring + SpringMVC + MyBatis)
  • Sql Server 中常用语句
  • 数据结构第八章(一) 插入排序
  • 李飞飞World Labs开源革命性Web端3D渲染器Forge!3D高斯溅射技术首次实现全平台流畅运行
  • GPUCUDA 发展编年史:从 3D 渲染到 AI 大模型时代(上)
  • Elasticsearch的审计日志(Audit Logging)介绍
  • 【Android】RV折叠适配器
  • 王道入门50题答案
  • OpenLayers 地图标注之聚合标注
  • 微信小程序前端面经
  • 搭建强化推荐的决策服务架构
  • Quick UI 组件加载到 Axure
  • 建站的cms/搜索排名优化软件
  • 外贸网站建设方案/网页制作软件dreamweaver
  • 想建设一个网站 一般多少钱/seo管理软件
  • 海拉尔做网站多少钱/唯尚广告联盟app下载
  • 网站运营改进的点/美国最新新闻头条
  • asp网站制作实例教程/网络推广理实一体化软件