前言
之前我们部署了jdk和Tomcat,这篇博客将部署MySQL。
首先我们需要准备好MySQL的tar包:
可以去MySQL的官网下载
部署MySQL
1、先检查有没有安装mariadb
(mariadb是系统自带的db)
rpm -qa|grep mariadb
把它给卸载
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
再查看mariadb
安装libaio、perl、net-tools库
yum -y install libaio perl net-tools
回到我们之前存放jdk和Tomcat的mytools路径下,将准备好的mysql的tar包使用rz上传
建个目录并将安装文件解压到此目录
//新建文件夹存放解压文件
mkdir /usr/local/mysql-5.7.30
//返回到存放压缩文件的位置
cd /usr/local/mytools
//将MySQL解压到指定路径
tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql-5.7.30
MySQL解压后的文件都是rpm文件
接下来进入到MySQL文件夹中:
cd /usr/local/mysql-5.7.30
开始安装
-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度
rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
启动服务
systemctl start mysqld
注1:安装完成后的服务名叫mysqld
查看服务
systemctl status mysqld
可以看到MySQL的服务已经启动
查询生成的临时密码
grep "password" /var/log/mysqld.log
登录mysql
mysql -u root -p
执行这条命令后它会让我们输入密码我们将之前查询出来的密码粘贴上去即可登陆成功(密码是看不到输没输入的):
然后我们查看初始密码策略
SHOW VARIABLES LIKE 'validate_password%';
随后我们设置任何密码都可以通过,因为我们设置的密码如果太简单默认是不通过的
set global validate_password_policy=0;
返回ok表示通过
我们再设置密码长度,要不密码太短不让你过(多次测试发现密码最小长度为4位)
set global validate_password_length=4;
返回ok表示设置成功
更改密码:
set password = password("1234");
输入后使修改生效还需要下面的语句:
FLUSH PRIVILEGES;
可以退出,试试用新密码重新登录(Ctrl+z)
quit
使用新密码登陆成功:
然后我们需要配置MySQL的字符编码:
登陆mysql之后,可以通过如下命令查看mysql的字符集:
show variables like 'chara%';
可以看到有一些的字符编码不是utf-8,我们退出MySQL修改配置文件设置 MySQL 字符集为 UTF-8
打开配置文件
vim /etc/my.cnf
在mysqld最下面加入二行代码
character-set-server=utf8
collation-server=utf8_general_ci
然后添加client标签
[client]
default-character-set=utf8
然后esc保存再:wq退出
然后我们使用命令重启服务:
systemctl restart mysqld
再查询字符编码就已经改变了!
但是我们还有一个问题
CenOS7下无法远程连接MySQL数据库
数据库没有授权,允许以root身份远程登录mysql
重复修改密码的三条命令:
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password_policy=0;
set global validate_password_length=4;
为什么需要重复执行?因为不执行会报密码长度过短的错
执行完三条代码就可以执行授权的命令
然后进行数据库的刷新
FLUSH PRIVILEGES;
到这一步就意味着我们把MySQL的root的权限打开了!
我们还需要打开3306的端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
我们再刷新一下
firewall-cmd --reload
我们查询 一下所有打开的端口:
firewall-cmd --list-port