目录
[MySql 在 CentOS 7 环境下安装。](#MySql 在 CentOS 7 环境下安装。)
[2.配置 mysql 官方 yum 源](#2.配置 mysql 官方 yum 源)
[4.启动 mysql](#4.启动 mysql)
[5.mysql 登录](#5.mysql 登录)
[6.配置 mysql](#6.配置 mysql)
[7. 设置开机启动](#7. 设置开机启动)
MySql 在 CentOS 7 环境下安装。
说明:
- 在安装与卸载中,用户切换成 root ,一旦安装,普通用户能使用
1.卸载不要的环境
1. 先检查是否有这些环境
[root@slave0 ~]# ps axj | grep mysql
3446 3541 3540 3392 pts/0 3540 S+ 0 0:00 grep --color=auto mysql
[root@slave0 ~]# ps axj | grep mariadb
3446 3584 3583 3392 pts/0 3583 S+ 0 0:00 grep --color=auto mariadb
上面的 mariadb 其实就是 mysql。
上面没有查到有 mysql 的服务,如果有的话就删掉。
虽然这里没有,但是还是演示一下如何删除。
这里删除的时候需要把用户切换成 root 用户,否则无法卸载。
2. 先关闭 mysql 服务
root@slave0 ~]# systemctl stop mysqld
我们在 yum 上获得的 mysql 都是 .rpm 的。所以我们可以使用 rmp 来查看 yum 上获得的 mysql 的安装包,查到后卸载掉。
3. 查询 yum 获得的 mysql
[root@slave0 ~]# rpm -qa | grep mysql
mysql++-3.1.0-12.el7.x86_64
4.查询到后删除,因为是 yum 安装所以使用 yum remove
删除的时候可以一个一个删除也可以批量化删除。
[root@slave0 ~]# rpm -qa | grep mysql | xargs yum -y remove
这里使用 xargs 就是将查询到的数据按照命令行参数的形式经过管道传到 yum remove 里,由于删除的时候要确认,所以我们不想确认,我们可以带 -y 选项。
下一步我们就继续查询一下,如果没有 mysql 的安装包和对应的进程就可以了。
然后我们在卸载掉我们有关之前安装 mysql 剩余的配置环境
5. 在 /etc/ 目录下
[root@slave0 etc]# cd /etc/
[root@slave0 etc]# ls | grep my.cnf | xargs rm -rf
[root@slave0 etc]# ls | grep my.cnf
[root@slave0 etc]#
上面就就这样就卸载干净了
2.配置 mysql 官方 yum 源
1. 获取 mysql 官方 yum 源 http://repo.mysql.com/
2. 注意安装的和自己系统一直的版本,否则可能出现软件兼容问题。
3. 检查自己系统版本。
[root@slave0 etc]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
我这里是 7.5 的版本,所以尽量找 mysql
<IMG SRC="/icons/generic.gif" ALT="[FILE]"> <A HREF="mysql57-community-release-el7.rpm">mysql57-community-release-el7.rpm</A> 27-Apr-2017 10:45 25k
由于我上面没有找到与自己匹配的,所以就挑选这个。
当下载好后,我们会下载到本地,然后我们在到 Linux 上建一个 MySql 的路径,然后我们把刚刚下载好的 MySql 的上传上来。
[root@slave0 /]# cd MySql/
[root@slave0 MySql]# rz
[root@slave0 MySql]# ll
总用量 28
-rw-r--r--. 1 root root 25680 8月 20 12:21 mysql57-community-release-el7.rpm
这里就上传上来了。
我们要先查一下我们默认支持的 yum 源。
[root@slave0 MySql]# ls /etc/yum.repos.d/ -l
总用量 40
-rw-r--r--. 1 root root 1664 4月 29 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 4月 29 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 4月 29 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 4月 29 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 4月 29 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 4月 29 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 4月 29 2018 CentOS-Vault.repo
-rw-r--r--. 1 root root 1358 9月 5 2021 epel.repo
-rw-r--r--. 1 root root 1457 9月 5 2021 epel-testing.repo
我们这里面没有 mysql 的,所以我们还要做 yum 源 安装。
安装 yum 源
[root@slave0 MySql]# rpm -ivh mysql57-community-release-el7.rpm
警告:mysql57-community-release-el7.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:mysql57-community-release-el7-11 ################################# [100%]
安装好后,我们继续查一下 yum 源
[root@slave0 MySql]# ls -l /etc/yum.repos.d/
总用量 48
-rw-r--r--. 1 root root 1664 4月 29 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 4月 29 2018 CentOS-CR.repo
-rw-r--r--. 1 root root 649 4月 29 2018 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root 314 4月 29 2018 CentOS-fasttrack.repo
-rw-r--r--. 1 root root 630 4月 29 2018 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 4月 29 2018 CentOS-Sources.repo
-rw-r--r--. 1 root root 4768 4月 29 2018 CentOS-Vault.repo
-rw-r--r--. 1 root root 1358 9月 5 2021 epel.repo
-rw-r--r--. 1 root root 1457 9月 5 2021 epel-testing.repo
-rw-r--r--. 1 root root 1838 4月 27 2017 mysql-community.repo
-rw-r--r--. 1 root root 1885 4月 27 2017 mysql-community-source.repo
这下就有了。
yum 源安装好后,我们 yum list 就能查到我们想要的 mysql 了。
3.开始安装
前面的步骤都完成后,我们就可以一键安装 mysql 了。
yum install -y mysql-community-server
如果在安装中出现错误可能就是下面的错误。
1. 安装遇到密钥过期的问题
2. Failing package is: mysql-community-client-5.7.39-1.el7.x86_64
3. GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
4.
5. 解决方案:
6. rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装成功后,要存在 /etc/my.cnf 的文件。
还要能查到一个 mysqld
[root@slave0 MySql]# which mysql
/usr/bin/mysql
还要能查到 mysql 的客户端
[root@slave0 MySql]# which mysqld
/usr/sbin/mysqld
启动 mysql 的服务器的时候,一般启动的时候需要 root 来启动。
4.启动 mysql
[root@slave0 MySql]# systemctl start mysqld
[root@slave0 MySql]# ps axj | grep mysqld
1 5888 5887 5887 ? -1 Sl 27 0:00 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
4465 5921 5920 4465 pts/1 5920 S+ 0 0:00 grep --color=auto mysqld
然后查一下,是否有 mysqld 的一个程序启动。
5.mysql 登录
mysql 的登陆方法很多,下面说一个比较通用的方法
1. 打开 mysql 的配置文件 /etc/my.cnf
2. 在最后一行添加 skip-grant-tables
[root@slave0 MySql]# vim /etc/my.cnf
[root@slave0 MySql]# 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
[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
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
skip-grant-tables
配置完成后,我们重启一下 mysql 的服务就可以了,然后直接登录
mysql -u root -p
直接回车就可以
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
然后我们 show databases 查看一下数据库就可以了。
6.配置 mysql
1 配置mysql 主要是配置 mysql 的编码格式
源:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/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 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
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
skip-grant-tables
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/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 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
character-set-server=utf8
default-storage-engine=innodb
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
skip-grant-tables
加了三行
等配置文件修改完毕后,我们还需要重启 mysql 服务
因为 mysql 的默认端口号是 3306 所以我们自己使用的话,不建议修改为其他的端口号。
7. 设置开机启动
[root@slave0 MySql]# systemctl enable mysqld
[root@slave0 MySql]# systemctl daemon-reload
如果是服务器的话,那么其实设置不设置都一样,如果是虚拟机的话,那么可以设置一下。