Linux实验:MySQL的安装和配置

题目要求

使用SSH客户端(如SecureCRT)远程连接Linux操作系统,实现以下功能:
(1)下载安装MySQL社区版服务器。
(2)设置MySQL服务中root用户的密码。
(3)允许root用户远程登陆和操作MySQL。
(4)创建一个学生学号和姓名数据,并能将中文显示出来。
要求分别在本地和云端操作成功。

编程环境

本地

本地操作系统:Windows 10
本地虚拟机运行平台:VMware Workstation Pro 14
本地虚拟机镜像:CentOS-7-x86_64-Minimal-1908.iso

云端

云服务器提供商:阿里云计算有限公司
Linux发行版本及版本号:CentOS 7.6 64位

客户端

SecureCRT

命令实现

本人安装的是MySQL 5.7版本,其他版本特别是MySQL 8.0开始的版本的安装和配置可能有所变化。

1、下载安装MySQL服务

从MySQL官方的Yum Repository中下载rpm软件包

wget –c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

提醒:
(1)之所以要进行这一步操作,是因为CentOS下的软件包管理器yum中暂时没有MySQL社区版服务器mysql-community-server的安装包。
(2)这里使用到了wget命令,如果没有该命令,则先执行此句进行下载:yum -y install wget
(3)这里下载的是MySQL 5.7,要想下载其他版本,请到MySQL官网中寻找想要的rpm软件包(地址:https://dev.mysql.com/downloads/repo/yum/),将下图举例的划线部分替换掉mysql57-community-release-el7-10.noarch.rpm即可。

(4)完成本次操作后,rpm软件包会被默认下载到当前目录,可以使用 ls -l 或 ll 命令查看到下载好的rpm软件包。

安装下载的rpm软件包

yum -y install mysql57-community-release-el7-10.noarch.rpm

安装MySQL社区版服务器

yum -y install mysql-community-server

查看MySQL版本

mysql -V

这里是来检验MySQL服务是否安装成功。

2、开放MySQL的默认端口3306

# 重启防火墙,以保证防火墙一定是开启的
systemctl restart firewalld.service

# 在防火墙添加端口3306且设置永久开启
firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 重新加载防火墙,使上一步操作生效
firewall-cmd --reload

# 查看3306端口是否开放
firewall-cmd --zone=public --query-port=3306/tcp

如果是Linux云服务器,则还要在阿里云服务器控制台增加MySQL默认端口3306的安全组规则,才能保证MySQL服务能被访问,操作结果如下图。具体操作请看博客《Linux脚本编程:sudo命令下安装ssh服务并自定义端口和允许root登陆》中代码实现部分的注意事项。

3、设置MySQL服务

# 重启MySQL服务,不用start用restart是为了避免读者之前启动过MySQL服务且没有关闭
systemctl restart mysqld

# 检查MySQL服务的运行状态,有running字样说明启动成功
systemctl status mysqld

# 设置MySQL服务开机自启动,此步为防止以后重启了Linux后使用MySQL前忘记启动服务,读者视自身情况选择是否执行本命令
systemctl enable mysqld

4、修改root用户默认密码

获取安装时MySQL自动对root设置的临时密码

# 用rpm包安装的mysql的临时密码默认在/var/log/mysqld.log里
grep 'temporary password' /var/log/mysqld.log

下图中绿色圆圈处的内容即为临时密码。

使用root用户及其临时密码登录MySQL

mysql -u root -p

本人在这一步之前,曾不知道有临时密码的存在,直接输入mysql -u root试图免密登陆,但失败了,系统提示要输入密码。失败后了解并按上一步操作获得临时密码后进行本步操作,却出现mysql.sock文件路径不正确的错误。最后个人的解决方法如下:
(1)清除MySQL带来的数据:rm -rf /var/lib/mysql
(2)重启MySQL服务:systemctl restart mysqld
(3)再次执行上一步的获取临时密码操作,因为临时密码可能变了。
(4)执行本步操作。

设置root用户的新密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';

MySQL会进行密码强度校验,要求密码必须包含大小写字母、特殊符号和数字,并且长度大于8位。

使用root新密码登录MySQL

# 退出当前的MySQL登录状态
exit 

mysql -u root -p

# 本步退出是为了下一步的操作
exit 

5、配置MySQL默认编码为utf-8

# 进入MySQL配置文件
vi /etc/my.cnf 

# 按下i键进入编辑模式,在[mysqld]所在行的下一行插入以下两行内容:
character_set_server=utf8
init_connect='SET NAMES utf8'
# 按下esc键退出编辑模式

# 保存并退出文件
:wq

# 重启MySQL服务
systemctl restart mysqld

# 登陆MySQL查看默认编码,最终结果如下图
mysql -u root –p
show variables like '%character%';

本步操作是为了让MySQL能正确显示中文。

6、授权root远程登录

# 允许root用户远程登录数据库并拥有所有操作权限(其他MySQL版本的写法可能有所不同)
GRANT ALL PRIVILEGES ON *.* to root@'%' IDENTIFIED BY 'root的密码';

# 刷新权限相关表
flush privileges;

# 重启MySQL服务
exit # 退出当前的MySQL登录状态
systemctl restart mysqld

# 检查root用户权限,结果如下图
mysql -u root –p
SHOW GRANTS FOR root;

注意MySQL语句的最后一定要有英文符号的分号。

7、创建数据

# 创建名为experiment的数据库,并查看数据库experiment是否存在
CREATE DATABASE experiment;
SHOW DATABASES;

# 在数据库experiment中创建名为students的数据表,并查看数据表students是否存在
USE experiment;
CREATE TABLE students (id varchar(25) NOT NULL, name varchar(25) NOT NULL, PRIMARY KEY (id));
DESC students;

# 插入一条数据,并查看该数据是否存在
INSERT INTO students VALUES ('1','张三');
SELECT * FROM students;

# 完成题目所有要求,退出MySQL
exit

MySQL语句不区分大小写,建议用大写,用户自定义的内容用小写,方便阅读。

如果文章内容出错或者您有更好的解决方法,欢迎到评论区指正和讨论!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值