当前位置: 代码网 > it编程>数据库>Mysql > MySQL在Centos7环境安装MySQL教程

MySQL在Centos7环境安装MySQL教程

2025年08月11日 Mysql 我要评论
说明:一、卸载内置环境1、卸载不要的环境[whb@vm-0-3-centos ~]$ ps ajx |grep mariadb # 先检查是否有mariadb存在13134 14844 14843 1

说明:

一、卸载内置环境

1、卸载不要的环境

[whb@vm-0-3-centos ~]$ ps ajx |grep mariadb # 先检查是否有mariadb存在
13134 14844 14843 13134 pts/0 14843 s+ 1005 0:00 grep --color=auto
mariadb
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
[whb@vm-0-3-centos ~]$ systemctl stop mariadb.service # 停⽌mariadb 服务
==== authenticating for org.freedesktop.systemd1.manage-units ===
authentication is required to manage system services or units.
authenticating as: root
password:
==== authentication complete ===
[whb@vm-0-3-centos ~]$ ps axj |grep mariadb # 停⽌完成
13134 14976 14975 13134 pts/0 14975 s+ 1005 0:00 grep --color=auto
mariadb

mariadb 其实就是 mysql,只不过是 mysql 的另一种拉出来的开源分支,也可以正常使用,如果不想卸载也是可以的。 

2、检查系统安装包

[whb@vm-0-3-centos ~]$ rpm -qa | grep mariadb
or
[whb@vm-0-3-centos ~]$ rpm -qa | grep mysql
...
...
...
# 下⾯是打印出来的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数据

4、获取 mysql 官方 yum 源

下载 mysql yum包:

wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

#1. 获取mysql官方yum源 http://repo.mysql.com/
# 一定要看好下面的文字!如果后面自己安装不成功,就看看这个
# 注意:最好安装和自己系统一致的mysql版本,否则可能会存在软件兼容性问题
# 查看自己的系统版本
# [root@vm-8-5-centos ~]# cat /etc/redhat-release
# centos linux release 7.8.2003(core)
# 可以进入 http://repo.mysql.com/,找一下和自己版本一致的资源
# 下载到你的本地,然后上传到你的linux服务器

二、 配置 mysql yum 源

1、安装 mysql yum 源,对比前后 yum 源

安装 mysql 源:rpm -uvh mysql57-community-release-el7-10.noarch.rpm

安装前
[root@vm-8-5-centos mysql]$ ls
mysql57-community-release-el7-10.noarch.rpm
 
查看你本地的yum源 [每个人的都不同,没有mysql相关的yum源]
[root@vm-8-5-centos mysql]$ 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

2、再看看能不能正常工作

[root@vm-8-5-centos mysql]$ yum list |grep mysql
repository epel is listed more than once in the configuration
mysql57-community-release.noarch el7-10 installed
akonadi-mysql.x86_64 1.9.2-4.el7 base
anope-mysql.x86_64 2.0.9-3.el7 epel
apr-util-mysql.x86_64 1.5.2-6.el7 base
calligra-kexi-driver-mysql.x86_64 2.9.10-2.el7 epel
 
collectd-mysql.x86_64 5.8.1-1.el7 epel
 
dmlite-plugins-mysql.x86_64 1.14.2-1.el7 epel
 
dovecot-mysql.x86_64 1:2.2.36-8.el7 base

一开始的时候我们安装的 yum,在安装完之后是可以选择删除的,因为每次 yum 操作都会更新一次,耗费时间。

rpm -qa | grep mysql

yum -y remove mysql57-community-release-el7-10.noarch

三、开始安装

1、安装 mysql 服务

安装 mysql 服务端,需要等待一些时间:yum install -y mysql-community-server

[root@vm-8-5-centos mysql]$ sudo yum install -y mysql-community-server
[sudo] password for root:
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步《常见问题》

2、查看配置文件和数据存储位置

[root@vm-8-5-centos mysql]$ ls /etc/my.cnf
/etc/my.cnf
[root@vm-8-5-centos mysql]$ sudo ls /var/lib/mysql
....

3、启动服务

启动 mysql:systemctl start mysqld.service

[root@vm-8-5-centos mysql]$ 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 ===
4、查看启动服务

检查是否启动成功:systemctl status mysqld.service

[root@vm-8-5-centos mysql]$ 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
[root@vm-8-5-centos mysql]$ sudo ls -al /var/lib/mysql
total 122956
drwxr-x--x 5 mysql mysql 4096 apr 12 11:23 .
drwxr-xr-x. 39 root root 4096 apr 12 11:11 ..
-rw-r----- 1 mysql mysql 56 apr 12 11:23 auto.cnf
-rw------- 1 mysql mysql 1680 apr 12 11:23 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 apr 12 11:23 ca.pem
-rw-r--r-- 1 mysql mysql 1112 apr 12 11:23 client-cert.pem
-rw------- 1 mysql mysql 1676 apr 12 11:23 client-key.pem
-rw-r----- 1 mysql mysql 436 apr 12 11:23 ib_buffer_pool
-rw-r----- 1 mysql mysql 12582912 apr 12 11:23 ibdata1
-rw-r----- 1 mysql mysql 50331648 apr 12 11:23 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 apr 12 11:23 ib_logfile1
-rw-r----- 1 mysql mysql 12582912 apr 12 11:23 ibtmp1
drwxr-x--- 2 mysql mysql 4096 apr 12 11:23 mysql
srwxrwxrwx 1 mysql mysql 0 apr 12 11:23 mysql.sock
-rw------- 1 mysql mysql 6 apr 12 11:23 mysql.sock.lock
drwxr-x--- 2 mysql mysql 4096 apr 12 11:23 performance_schema
-rw------- 1 mysql mysql 1680 apr 12 11:23 private_key.pem
-rw-r--r-- 1 mysql mysql 452 apr 12 11:23 public_key.pem
-rw-r--r-- 1 mysql mysql 1112 apr 12 11:23 server-cert.pem
-rw------- 1 mysql mysql 1680 apr 12 11:23 server-key.pem
drwxr-x--- 2 mysql mysql 12288 apr 12 11:23 sys

四、开始登陆

1、登陆方法一【不行就下一个】

获取临时密码,mysql5.7 为 root 用户随机生成了一个密码:

grep 'temporary password' /var/log/mysqld.log

#获取临时root密码
[root@vm-8-5-centos mysql]$ 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*
 
#使用临时密码登录
[root@vm-8-5-centos mysql]$ mysql -uroot -p
enter password:
 
#判断修改密码时候新密码是否符合当前的策略,不满足报错,不让修改,关闭它
#安全强度,默认为中,即1,要求必须包含 数字、符号、大小写字母,长度至少为8位
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)
#修改本地登录密码,暂不授权远程登录
mysql> alter user 'root'@'localhost' identified by 'yourpassword';
query ok, 0 rows affected (0.00 sec)
 
mysql> flush privileges;
query ok, 0 rows affected (0.00 sec)
 
# 如果你安装最新的mysql,没有所谓的临时密码,root默认没有密码

通过临时密码登录 mysql,进行修改密码操作:mysql -uroot -p

使用临时密码登录后,不能进行其他的操作,否则会报错,这时候我们进行修改密码操作。

 因为 mysql 的密码规则需要很复杂,我们一般自己设置的不会设置成这样,所以我们全局修改一下:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

这时候我们就可以自己设置想要的密码了。

alter user 'root'@'localhost' identified by 'yourpassword';

2、登陆方法二【不行就下一个】

# 如果你安装的最新的mysql,没有所谓的临时密码,root默认没有密码
# 试着直接client登陆一下

3、登陆方法三【应该行了吧】

[root@vm-8-5-centos mysql]# vim /etc/my.cnf # 打开mysql配置文件
 
在[mysqld]最后一栏配置(不知道是什么,就放在配置文件最后) 加入:skip-grant-tables 选项,并保存退出
 
[root@vm-8-5-centos mysql]# systemctl restart mysqld # 重启mysql服务
 
# 登陆成功
[root@vm-8-5-centos mysql]# mysql -uroot
welcome to the mysql monitor.  commands end with ; or \g.
your mysql connection id is 7
server version: 5.7.44 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>

五、设置配置文件

1、设置开机启动【可以不设】

先退出 mysql 命令行,然后输入以下命令:

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

2、配置 my.cnf

设置 mysql 的字符集为 utf-8,令其支持中文:

vim /etc/my.cnf

#配置一下my.conf,主要是数据库客户端和服务器的编码格式
 
[root@vm-8-5-centos 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
 
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
 
character-set-server=utf8
default-storage-engine=innodb
 
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
skip-grant-tables
 
# 配置完毕,重启mysql即可

重启一下 mysql,令配置生效:

  • 重启 mysql:service mysqld restart
  • or
  • 停止 mysql:service mysqld stop
  • 启动 mysql:service mysqld start

3、常见问题

mysql 已经配置了客户端服务器utf8编码,但是无法输入中文
 
确保您在终端命令行中可以输入中文
[root@vm-8-5-centos ~]$ env | grep lang
lang=en_us.utf8
 安装遇到秘钥过期的问题:
failing package is: mysql-community-client-5.7.39-1.el7.86_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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com