返回 导航

其他

hangge.com

CentOS系统下MySQL数据库的安装教程

作者:hangge | 2020-12-01 08:10
    CentOS 7 内置的 MySQL 镜像已经放弃 Oracle 公司的 MySQL,改用 MySQL 的分支数据库 mariaDB。不过我们仍然可以手动安装 MySQL,而且安装完成之后可以直接覆盖掉 MariaDB。下面通过样例进行演示。

1,下载安装

(1)由于 CentOS 7 已停止维护,执行如下命令替换 CentOS 7 失效源为阿里云 Vault 源:
# 备份原有失效的源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

# 下载阿里云CentOS 7 Vault源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 清理旧缓存、生成新缓存
yum clean all
yum makecache

(2)接着执行如下命令下载 MySQL 官方的 Yum Repository
注意:如果提示未找到 wget 命令,可以先执行 yum install wget 命令安装。
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

(3)接着执行如下命令安装这个 Yum Repository
rpm -ivh mysql80-community-release-el7-3.noarch.rpm

(4)最后执行如下命令即可开始安装 MySQL 服务器,安装完成后就会覆盖掉之前的 mariaDB
yum -y install mysql-community-server

2,启动数据库

(1)安装完毕后执行如下命令启动 MySQL
systemctl start mysqld

(2)执行如下命令可以设置 Mysql 开机自启:
systemctl enable mysqld

(3)执行如下命令可以查看 MySQL 运行状态:
systemctl status mysqld.service

3,修改密码

(1)首先执行如下命令找到初始密码:
grep "password" /var/log/mysqld.log

(2)接着执行如下命令进入数据库:
注意
  • -p 后面即为上面查到的初始密码。
  • 如果初始密码有特殊字符命令可能会执行失败,我们可以先执行 mysql -u root -p,然后按提示输入密码回车即可。
mysql -uroot -pr2p/uCiGHK8d

(3)进入后执行如下命令修改密码(这里修改成 Hangge_123):
注意:密码设置必须要大小写字母数字和特殊符号(,/';:_等),不然不能配置成功
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Hangge_123';

4,开启 MySQL 的远程访问

(1)执行以下命令开启远程访问限制:
如果执行如下命令报错,可以参考我之前写的另一篇文章解决:
grant all privileges on *.* to 'root'@'%' identified by 'Hangge_123' with grant option;

(2)执行如下命令刷新刚才修改的权限,使其生效。
flush privileges; 

(3)然后执行如下命令退出: <>
exit

5,开放端口

(1)执行如下命令为防火墙添加 3306 端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent

(2)然后执行如下命令重新载入使其生效:
firewall-cmd --reload

6,更改默认字符集

(1)首先登入 MySQL 数据库:
mysql -uroot -pHangge_123

(2)然后执行 status 可以看到当前的字符集是 latin1

(3)先退出 MySQL,执行如下命令编辑 my.cnf 文件:
vi /etc/my.cnf

(4)接着在里面添加如下高亮部分的 4 行配置,然后保存退出。
[client]
default-character-set=utf8

[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
character-set-server=utf8
collation-server=utf8_general_ci

(5)最后执行如下命令重启 MySQL
service mysqld restart

(6)再次登入 MySQL 执行 status 命令可以发现字符集已经改成 uft8 了:
评论

全部评论(0)

回到顶部