【H2O2|全栈】MySQL的云端部署
目录
前言
开篇语
准备工作
MySQL移除
为什么需要移除?
移除操作
Yum仓库
yum简介
rpm安装
yum库安装
MySQL安装
使用yum安装
开机自启动
检查运行状态
MySQL配置
初始密码
编辑登录
修改root密码
退出MySQL
字符集配置
重启数据库
结束语
前言
开篇语
本篇属于云端部署系列知识,为了将我们的全栈项目部署至服务器,我们需要在云端linux下实现MySQL的安装与部署。
本篇涉及运维相关的知识,我们在进行前端开发时需要进行了解。
准备工作
软件:【参考版本】Xshell7,Xftp7
服务器:腾讯云/阿里云
语言:Linux
版本信息:MySQL5.7,CentOS
服务器端口放通:3306,8080
MySQL移除
为什么需要移除?
在进行MySQL配置时,如果此前已经有出现问题的MySQL配置,比如未卸载干净的数据库和不兼容的版本(太新或太旧),则最好先将此前的MySQL移除。
移除操作
在Xshell或服务器(腾讯云为OrcaTerm)中,利用yum移除MySQL——
# 移除Mysql
yum remove mysql-server mysql-client
注意,在进行该操作之前,我们需要配置yum仓库。
Yum仓库
yum简介
yum是包管理器,也就像一个软件下载安装管理的客户端,类似于手机里面的应用商店。
因为Linux下的软件包可能会存在着某种依赖关系(比如安装一个包需要附加安装其他包才能运行),那么此时使用yum便能够很好的解决这种依赖关系。
关于yum更加详尽的介绍,可以参考其他博主的文章,此处就不展开了。
rpm安装
rpm,全名 RedHat Package Managerment,是由Red Hat公司提出,被众多Linux发行版本所采用,是一种数据库记录的方式来将所需要的软件安装到到Linux系统的一套软件管理机制。
关于rpm的介绍,可以参考其他博主的文章,此处不详述。
安装代码如下——
# 安装rpm
sudo yum install rpm
由于MySQL并不在CentOS的官方仓库中,所以我们需要先导入MySQL的秘钥,然后再进行yum仓库配置。
安装完成之后,利用rpm更新MySQL秘钥——
# 更新密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum库安装
使用rpm安装MySQL的yum库——
# 安装Mysql yum库
rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
MySQL安装
使用yum安装
由于不需要考虑软件包之间的依赖问题,我们直接使用yum命令安装MySQL即可——
# yum安装Mysql
yum -y install mysql-community-server
开机自启动
我们希望MySQL在开机的时候就处于运行状态,所以先将MySQL启动,然后为其配置开机自启——
# 启动
systemctl start mysqld
# 开机自启
systemctl enable mysqld
检查运行状态
MySQL安装完成后,会自动配置mysqld服务,可以被systemctl所管理。
使用下面的代码来检查MySQL运行状态——
# 检查运行状态
systemctl status mysqld
当出现下面的字样时,则说明MySQL处于正常运行状态——
MySQL配置
在本步骤中,主要配置管理员用户root的密码以及配置允许远程登录的权限。
初始密码
MySQL的初始密码通常保存在/var/log/mysqld.log文件中,想要获取该密码,我们可以使用grep命令过滤出含有密码的语句——
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
grep 'temporary password' /var/log/mysqld.log
比如,下面的红色框中的就是初始密码(每个人不一样)——
登录
使用下面的命令,进入输入密码的命令行——
# 准备输入密码
mysql -uroot -p
-u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root,因此这里是-uroot。
-p,表示使用密码登陆。
在出现的提示输入密码处,将我们之前的初始密码复制粘贴过来——
注意,密码是不显示的,不要认为是卡了就重复输入。
当出现下面的命令行提示时,说明MySQL就可以正常使用了。
修改root密码
显然,初始密码还是有些太复杂了,我们可以通过下面的代码,进行对初始密码的修改——
# 在MySQL控制台进行密码修改操作
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc。
如果我们需要设置简单、好记的密码,则在设置密码之前还需要进行下面的操作(实际开发中不建议用,这里只是为了方便)——
# 如果你想设置简单密码,需要降低Mysql的密码安全级别
set global validate_password_policy=LOW; # 密码安全级别低
set global validate_password_length=4; # 密码长度最低4位即可
退出MySQL
在mysql控制台,使用exit命令退出MySQL——
exit;
字符集配置
数据库字符集未设定的情况下,导入数据会因为字符集的问题而导致导入失败,所以在数据导入前,需要重新设置数据库字符集配置。
退出MySQL后,使用vi命令打开mysql的配置文件——
vi /etc/my.cnf
点击i进入编辑模式,为字符集文件增添下面的配置——
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
完整结构如下——
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysql]
# 设置mysql客户端默认字符集
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
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 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
点击Esc退出编辑模式,输入下面的命令保存并退出——
:wq!
重启数据库
在完成设置前, 我们还需要重启数据库,确保我们的设置得到应用。
在根目录下,输入下面的指令实现数据库的重启——
systemctl restart mysqld
至此,我们完成了MySQL的云端配置。
结束语
本期内容到此结束。关于本系列的其他博客,可以查看我的云端部署专栏。
在全栈领域,博主也只不过是一个普通的萌新而已。本系列的博客主要是记录一下自己学习的一些经历,然后把自己领悟到的一些东西总结一下,分享给大家。
文章全篇的操作过程都是笔者亲自操作完成的,一些定义性的文字加入了笔者自己的很多理解在里面,所以仅供参考。如果有说的不对的地方,还请谅解。
==期待与你在下一期博客中再次相遇==
——放了挺久的【H2O2】