在CentOS 7系统上,通过YUM安装MySQL是一种常见且便捷的方法,下面将详细介绍如何通过YUM安装MySQL,包括步骤、注意事项和常见问题的解决方法。
一、安装前准备
在安装MySQL之前,需要确保系统的基本依赖和工具已经安装完毕,可以通过以下命令来安装这些工具:
yum y install gcc libxml2dev curl screen libpng12dev autoconf libpcre3dev make bzip2 libeventdev patch libjpeg62dev libcurl4openssldev libfreetype6dev g++ libtool libncurses5dev psmisc lrzsz yum install y make cmake gcc gccc++
二、下载安装YUM源
为了使用YUM安装MySQL,首先需要下载并安装MySQL官方提供的YUM仓库包,可以通过以下命令下载:
wget http://repo.mysql.com/mysqlcommunityreleaseel75.noarch.rpm
然后安装下载的RPM包:
sudo rpm ivh mysqlcommunityreleaseel75.noarch.rpm
安装完成后,可以通过以下命令检查是否成功添加了MySQL YUM源:
ls 1 /etc/yum.repos.d/mysqlcommunity
三、安装MySQL
现在可以使用YUM命令安装MySQL服务器和客户端:
yum install mysqlserver mysqldevel mysql
四、启动与停止MySQL服务
安装完成后,需要启动MySQL服务:
systemctl start mysqld
查看MySQL服务状态:
systemctl status mysqld
如果需要停止MySQL服务,可以使用以下命令:
systemctl stop mysqld
五、修改MySQL密码
MySQL安装完成后,会生成一个临时密码,可以在/var/log/mysqld.log
文件中找到,首次登录时需要使用这个临时密码:
grep 'temporary password' /var/log/mysqld.log
然后登录MySQL并修改密码:
mysql u root p ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!'; FLUSH PRIVILEGES;
六、添加远程连接权限
默认情况下,MySQL只允许本地连接,如果需要远程连接,可以执行以下步骤:
1、登录MySQL:
mysql u root p
2、授予远程连接权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyNewPass4!' WITH GRANT OPTION; FLUSH PRIVILEGES;
3、查看用户表以确认更改:
USE mysql; SELECT host, user, authentication_string FROM user;
七、设置开机启动
为了确保MySQL在系统重启后自动启动,可以执行以下命令:
systemctl enable mysqld systemctl daemonreload
八、修改默认编码为utf8mb4
MySQL 8.0之前默认字符集是Latin1,而从MySQL 8.0开始,默认字符集是utf8mb4,可以通过修改配置文件来设置默认字符集:
编辑/etc/my.cnf
文件,在[mysqld]部分添加以下配置:
[mysqld] character_set_server=utf8mb4 init_connect='SET NAMES utf8mb4'
重新启动MySQL服务使配置生效:
systemctl restart mysqld
九、完全删除MySQL
如果需要完全删除MySQL,可以执行以下步骤:
1、关闭MySQL服务:
systemctl stop mysqld
2、卸载MySQL软件包:
yum remove mysqlserver mysqllibs mysqlclient mysqlcommon y
3、删除MySQL数据文件:
rm rf /var/lib/mysql/
4、删除MySQL配置文件:
rm rf /etc/my.cnf /etc/logrotate.d/mysqld /etc/rc.d/init.d/mysqld /etc/apparmor.d/abstractions/mysql /etc/apparmor.d/cache/usr.sbin.mysqld /etc/mysql/* /var/cache/mysqld/* /usr/lib/systemd/system/mysqld.service /usr/share/man/man8/mysqld.8.gz /usr/share/man/man8/msqld_safe.8.gz /usr/share/mysql/* /var/log/mysql.* /var/log/mysqld.log /var/run/mysqld/mysqld.pid /var/run/mysqld/mysqld.sock /var/log/mysqld.err /etc/systemd/system/multiuser.target.wants/mysqld.service /usr/share/doc/mysql*/ /usr/share/mysql*/ /usr/share/man/man1/mysql.1.gz /usr/share/man/man1/msqldump.1.gz /usr/share/man/man1/mysqladmin.1.gz /usr/share/man/man1/mysqlbinlog.1.gz /usr/share/man/man1/mysqlbug.1.gz /usr/share/man/man1/mysqlcheck.1.gz /usr/share/man/man1/mysqlimport.1.gz /usr/share/man/man1/mysqlshow.1.gz /usr/share/man/man1/mysqlslap.1.gz /usr/share/man/man1/mysqltest.1.gz /usr/share/man/man1/my_print_defaults.1.gz /usr/share/man/man1/mysqlclient_test_embedded.1.gz /usr/share/man/man1/mysqlclient_test_embedded_chaos.1gz /usr/share/man/man1/mysqlclient_test_embedded_debug.1gz /usr/share/man/man1/mysqlclient_test_embedded_null.1gz /usr/share/man/man1/mysqlclient_test_embedded_off.1gz /usr/share/man/man1/mysqlclient_test_embedded_trace.1gz /usr/share/man/man1/mysqlclient_test_embedded_unittests.1gz /usr/share/man/man1/mysqlclient_test_embedded_unittests.pl /usr/share/man/man1/mysqlclient_test_embedded_unittests.py /usr/share/man/man1/mysqlclient_test_embedded_unittests.rb /usr/share/man/man1/mysqlclient_test_embedded_unittests.sh /usr/share/man/man1/mysqlclient_test_embedded_unittests.spec /usr/share/man/man1/mysqlclient_test_embedded_unittests.tcl /usr/share/man/man1/mysqlclient_test_embedded_unittests.tgz /usr/share/man/man1/mysqlclient_test_embedded_unittests.zip /usr/share/man/man1/mysqlclient_test_embedded_unittests.7z /usr/share/man/man1/mysqlclient_test_embedded_unittests.bz2 /usr/share/man/man1/mysqlclient_test_embedded_unittests.xz /usr/share/man/man1/mysqlclient_test_embedded_unittests.lzma /usr/share/man1/mysqlclient_test_embedded_unittests.lzo /usr/share/man1/mysqlclient_test_embedded_unittests.lzop /usr/share/man1/mysqlclient_test_embedded_unittests.lzma2 /usr/share/man1/mysqlclient_test_embedded_unittests.xz2 /usr/share/man1/mysqlclient_test_embedded_unittests.lz4 /usr/share/man1/mysqlclient_test_embedded_unittests.lzO /usr/share/man1/mysqlclient_test_embedded_unittests.tar /usr/share/man1/mysqlclient_test_embedded_unittests.tar.bz2 /usr/share/man1/mysqlclient_test_embedded_unittests.tar.gz /usr/share/man1/mysqlclient_test_embedded_unittests.tar.lzma /usr/share/man1/mysqlclient_test_embedded_unittests.tar.xz /usr/share/man1/mysqlclient_test_embedded_unittests.txz /usr/share/man1/mysqlclient_test_embedded_unittests.tgz /usr/share/man1/mysqlclient_test_embedded_unittests.zip /usr/share/man1/mysqlclient_test_embedded_unittests.7z /usr/share/man1/mysqlclient_test_embedded_unittests.bz2 /usr/share/man1/mysqlclient_test_embedded_unittests.xz /usr/share/man1/mysqlclient_test_embedded_unittests.lzma /usr/share/man1/mysqlclient_test_embedded_unittests.lz4 /usr/share/man1/mysqlclient_test_embedded_unittests.lzO /usr/share/man1/mysqlclient_test_embedded_unittests.lzma2 /usr/share/man1/mysqlclient_test_embedded_unittests.xz2 /usr/share/man1| grep mysql | xargs rm rf
十、相关FAQs
Q1: 如何检查系统中是否已经安装了MySQL?
A1: 可以通过以下命令检查:
rpm qa | grep mysql
Q2: 如果已经安装了MySQL,如何卸载?
A2: 可以通过以下命令卸载:
yum remove mysqlserver mysqllibs mysqlclient mysqlcommon y
Q3: 如何修改MySQL的默认端口号?
A3: 可以通过编辑/etc/my.cnf
文件,修改[mysqld]
部分中的port
参数,然后重启MySQL服务,将默认端口3306修改为3307:
[mysqld] port=3307
保存文件后,重启MySQL服务:
systemctl restart mysqld
通过YUM在CentOS 7上安装MySQL是一个简单且高效的过程,只需按照上述步骤操作,即可完成MySQL的安装、配置和使用,如果在安装过程中遇到问题,可以参考相关的FAQs进行解决。