4.安装MySQL

3.安装MySQL

有关在Linux系统下安装MySQL的介绍,查看DataWhale的Alias与知乎的Liuuu写的这两篇文章就够了。这里只是针对安装过程中遇见的问题进行补充。

注意:我用的是阿里云服务器,然后操作系统为CentOs版本的Linux,准备安装的MySQL版本是mysql80-community-release-el7-3.noarch.rpm
MySQL Yum包

在CentOS系统中默认是安装了 MariaDB 的,但是我们需要的是MySQL,我们可以直接下载安装MySQL, 安装MySQL可以覆盖MariaDB.

关于 MariaDB:

MariaDB 数据库管理系统是 MySQL 的一个分支, 主要由开源社区在维护, 采用 GPL 授权许可. 开发这个分支的原因之一是:甲骨文公司收购了 MySQL 后, 有将 MySQL 闭源的潜在风险, 因此社区采用分支的方式来避开这个风险. MariaDB 的目的是完全兼容 MySQL, 包括 API 和命令行, 使之能轻松成为 MySQL 的代替品. 但在两个分支经过了几年的各自迭代之后, 在一些方面二者出现了一些差异.

3.1 安装步骤

首先,从MySQL官网上下载 MySQL的Yum Repository。根据CentOS和MySQL的版本,选择下载相对应的文件。本文选择红色方框的文件:MySQL Yum包

0. 选择安装文件夹

首先要选择合适的文件夹下载,我一般第三方软件,像是Java,MySQL都是放在/opt/SoftWare/里面。

cd /opt/SoftWare/
1. 下载MySQL Yum包

Yum是一个基于rpm的软件包管理器,它可以从指定的服务器自动下载rpm包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。

wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
2. 安装MySQL源

用yum命令安装下载好的 rpm 包:

yum -y install mysql80-community-release-el7-2.noarch.rpm
3. 安装MySQL服务器
yum -y install mysql-community-server

这一步由于要下载安装文件,可能会花一些时间。安装完成后就会覆盖掉之前的 mariadb。

3.2 数据库设置

4. 启动 MySQL
systemctl start  mysqld.service
5. 检查MySQL是否启动成功

查看MySQL运行状态,Active后面的状态代表启功服务后为(running)active,停止后为inactive(dead)

systemctl status mysqld.service

检查MySQL是否成功启动
重新启动 Mysql 和停止 Mysql 的命令如下:

service mysqld restart  #重新启动 Mysql
systemctl stop mysqld.service   #停止 Mysql
6. 获取临时密码

此时 MySQL 已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
为了加强安全性,MySQL8.0为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。只有启动过一次MySQL才可以查看临时密码。

使用命令:

grep 'temporary password' /var/log/mysqld.log

查看初始的随机密码,因为我重置过一次数据库,所以这里有两个随机密码,选择时间最新的。MySQL初次登录随机密码

7. 修改密码

登录 root 用户

mysql -u root -p

然后输入上述查到的初始密码。

登录后还不能做任何查询或建库操作,因为MySQL默认必须修改初始的随机密码之后才能操作数据库,否则会报错。这里假设修改密码为"PolyU.1234",默认密码策略要求密码必须是大小写祖母数字特殊字符的组合,至少8位。注意结尾要有分号,表示语句的结束。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'PolyU.1234';
8. 设置开机自启动

设置开机自启动,然后重新加载新的unit配置文件:

systemctl enable mysqld 
systemctl daemon-reload
9. 设置MySQL的字符集位UTF-8,令其支持中文
vim /etc/my.cnf

按字母i进入插入模式,新增[mysql],注意这里是[mysql]而不是已经存在的]mysqld],再在下面添加:

dafault-character-set=utf8

设置MySQL字符集位UTF-8
修改完,按ESC进入命令模式,然后输入:wq退出并保存。

10. 设置远程连接

首先,我们之前已经设置了root用户的host为localhost,也就是’host’@‘localhost’,这里更改为%,代表服务器远程连接。然后我们将远程连接的权限赋予root用户,并刷新所有用户权限。

UPDATE user SET host = "%" WHERE user='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

注意:如果这里按照DataWhale的文章上面操作,会报错。因为root用户已经存在,所以仅仅需要更改host的设置,而DataWhale的文章给的例子是在授权的同时新建’root’@’%'用户,同时这种写法也已经禁止了。所以以下两种写法都会报错:

GRANT ALL  PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'PolyU.1234' WITH GRANT OPTION;  

语法错误,因为这种写法已经废弃。

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'PolyU.1234';

设置出错,用户此时为‘root’@‘localhost’。

11.重启MySQL
service mysqld restart  #重新启动 Mysql
12. 开放3306端口

登录阿里云控制台设置->云服务器ECS->网络与安全->安全组->配置规则,开放3306端口。
阿里云开放3306端口

13. 远程连接测试

远程连接测试

14. 删除Yum

因为安装了Yum Repository,以后每次 yum 操作都会自动更新,如不需要更新,可以把这个 yum 卸载掉:

yum -y remove mysql80-community-release-el7-2.noarch
补充
  1. 在CentOS中,MySQL的主要配置所在的目录:

    • /etc/my.cnf MySQL的主配置文件
    • /var/lib/mysql MySQL数据库的数据库文件存放位置
    • /var/log MySQL数据库的日志输出存放位置
  2. 设置表名为大小写不敏感

systemctl stop mysqld.service

停止MySQL数据库服务,修改vim/etc/my.cnf,在[mysqld]下面添加:

lower_case_table_names=1

设置MySQL表名大小写不敏感

这里的参数0表示区分大小写,1 表示不区分大小写。同时,做好数据备份,然后使用下述命令删除数据库数据(删除后, 数据库将恢复到刚安装的状态):

rm -rf /var/lib/mysql

重启数据库,此时数据库恢复到初始状态:

service mysql start

重复安装时的操作,查找临时密码再,再进行修改:

grep 'temporary password' /var/log/mysqld.log

刷新MySQL的系统权限相关表:

FLUSH PRIVILEGES;

此时,MySQL的表名的大小写不再敏感。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值