MySQL部署

MySQL5.x部署

yum(rpm)方式安装

准备:

1
2
yum install wget -y
yum install yum-utils -y

centos7自带有mariadb,需要卸载

执行rpm -qa|grep mariadb查询是否有mariadb的安装包

如有提示,执行rpm -e --nodeps mariadb-libs删除它,没提示可以无视

下载MySQL安装包

1.前往官方网站复制yum源链接MySQL

2.执行wget rpm -ivh mysql80-community-release-xxxx.noarch.rpm(即你复制的下载链接)进行下载

进行yum安装

执行rpm -ivh mysql80-community-release-el7-3.noarch.rpm命令

接下来可以通过yum repolist all | grep mysql查看yum源中的mysql安装包

进行MySQL安装

可以看到yum源中默认启用的安装包版本为MySQL8.0,如果需要切换为5.7,需要运行以下命令:

yum-config-manager --disable mysql80-community

yum-config-manager --enable mysql57-community

进行安装:

yum install mysql-community-server -y

注意:可能会很慢可以自行到http://uni.mirrors.163.com/mysql/Downloads/MySQL-5.7/下载相对应的版本

目录:/var/cache/yum/x86_64/7/mysql57-community/packages

启动MySQL服务

**启动mysql服务 **systemctl start mysqld.service

**设置MySQL开机自启动 **systemctl enable mysql.service

**查看mysql服务运行状态 **systemctl status mysqld.service

MySQL服务器初始化(从MySQL5.7开始):在服务器初始启动时,如果服务器的数据目录为空,则会发生以下情况:

  • 服务器已初始化。
  • 在数据目录中生成SSL证书和密钥文件。
  • validate_password插件安装并启用。

MySQL密码

5.6版本

MySQL数据库安装完以后只会有一个root管理员账号,此时的root账号并没有设置密码。再第一次启动mysql服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,会看到/usr/bin/mysqladmin -u root password 'new-password',信息,这条信息提示是需要用root password ‘new-password’命令为root账号设置密码。

所以,可以通过如下命令给root账户设置密码(注意,这个root账号是MySQL的账号,而非Linux的账号):

1
2
# MySQL5.6
mysqladmin -u root password '密码'

5.7版本

默认将‘root‘@’localhost’创建一个超级用户帐户。设置超级用户的密码并将其存储在错误日志文件中。要显示它,请使用以下命令:

1
2
# MySQL5.7
grep 'temporary password' /var/log/mysqld.log

通过使用生成的临时密码登录并为超级用户帐户设置自定义密码,尽快更改root密码:

mysql -u root -p

Enter pasword:查询的默认密码(输入密码不会有提示)

注意 MySQL的插件默认安装。

这将要求密码包含至少一个大写字母,一个小写字母,一个数字和一个特殊字符,并且密码总长度至少为8个字符。

如果您需要修改简单密码,可以依次执行以下操作步骤:

1
2
3
4
5
set global validate_password_policy=0;
set global validate_password_length=1;
set global validate_password_mixed_case_count=2;
-- 然后进行密码更改
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

外部访问MySQL

1
2
3
4
5
6
7
8
9
10
use mysql;

--查询正常结果来说,应该都是localhost
select  User,authentication_string,Host from user;

--一下是权限;可以根据你的情况或者是自己的喜好进行酌情修改
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码';

--清除缓存,重新加载权限
flush privileges;

额外:

MySQL配置文件

修改MySQL端口

在修改前需停掉MySQL服务

1
2
3
4
# 查看状态
systemctl status mysqld.service
# 停掉MySQL服务
systemctl stop mysqld.service

修改MySQL配置文件my.cnf

1
2
# 默认yum安装的MySQL cnf文件在/etc目录里面
vim /etc/my.cnf
1
2
3
4
5
6
7
# 在[mysqld]下添加
port=xxx(端口号) # 如port=10086
# 保存并退出后,开启MySQL服务
# 开启MySQL服务
systemctl start mysqld.service
# 查看状态
systemctl status mysqld.service

登录MySQL,查看端口

1
show global variables like 'port';