Linux安装MySQL

Linux安装MySQL

这里以安装MySQL8.0.34为例,系统环境为CentOS 7 64位。SSH远程连接使用的是FinalShell。

MySQL官网:mysql.com

image-20230815200248515

image-20230815200314642

image-20230815200341078

image-20230815200954538

image-20230815201036541

下载地址直达:https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar

下载完成解压后,可以看到许多.rpm文件,将其中打框的传入至虚拟机:

image-20230816094230242

检查CentOS 7下MySQL依赖

检查/tmp临时目录权限

因为在mysql安装过程中,会通过mysql用户在/tmp_db文件,所以需要给/tmp较大的权限:

chmod -R 777 /tmp

image-20230815225814547

检查依赖

libaio

rpm -qa|grep libaio

如果存在依赖,则如下图:

image-20230815230024864

如果没有,则执行以下命令进行安装:

yum install -y libaio-0.3.109-13.el7.x86_64

net-tools

rpm -qa|grep net-tools

如果存在依赖,则如下图:

image-20230815231300115

如果没有,则执行以下命令进行安装

yum install -y net-tools-2.0-0.25.20131004git.el7.x86_64

注意:如果Linux系统选择的是带图形化界面,则这些都是安装好的,最小安装方式则需要进行手动安装一下。

安装过程

将安装程序拷贝到/mysql目录下

安装程序即上面拷贝到虚拟机的六个.rpm文件,如果上面已经考过了,则直接用cd命令打开文件所在目录即可。

在mysql的安装文件目录下执行(必须按照顺序执行):

rpm -ivh mysql-community-common-8.0.34-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-plugins-8.0.34-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-8.0.34-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-8.0.34-1.el7.x86_64.rpm

rpm -ivh mysql-community-icu-data-files-8.0.34-1.el7.x86_64.rpm 

rpm -ivh mysql-community-server

注意:在安装第三个的时候,会报下面的错误:

image-20230816093213742

这是因为mysql被oracle收购之后,mysql团队担心oracle公司会将mysql闭源,所以mysql核心团队单独开发了一款开源的,就叫mariadb。只需要执行下面的命令清除之前安装的依赖即可:

yum remove -y mysql-libs

清除之后重新安装第三步,继续后续的安装即可。

查看MySQL版本

类似于java -version查看java版本的命令,执行下面的命令,如果安装成功则会显示如下图:

mysql --version
# 或者
mysqladmin --version

image-20230816094652922

也可以执行下面的命令,查看是否有刚才安装的六个程序判断是否安装成功。

rpm -qa|grep -i mysql

image-20230816094849532

服务初始化

为了保证数据库目录与文件的所有者为mysql登录用户,如果是以root身份运行mysql服务,则需要执行下面命令进行初始化:

mysqld --initialize --user=mysql

说明--initialize选项默认是以“安全”模式进行初始化,则会为root用户生成一个密码,并将其标记为过期,登录之后需要重新设置一个新密码。生成的临时密码会在日志中记录一份。

执行命令查看日志中的临时密码:

cat /var/log/mysqld.log

image-20230816095449053

启动MySQL

这时先不要着急登录mysql,还需要检查一下mysql服务是否启动:

systemctl status mysqld

image-20230816095554734

发现mysql只是安装完成,并没有启动,执行命令启动mysql:

systemctl start mysqld

再次查看mysql服务状态,已经启动(active):

image-20230816095740320

用命令查看mysql是否自启动:

systemctl list-unit-files|grep mysqld.service

发现也已经开启自启动:

image-20230816100044913

设置mysql自启动,以便于以后启动虚拟机后不再需要手动打开mysql

systemctl enable mysqld.service

如果不希望进行自启动,也可以运行以下命令进行配置:

systemctl disable mysqld.service

登录MySQL

此时已经全部就绪,可以开始进行登录:

mysql -uroot -p临时密码

注意:-p与密码之间不要有空格,否则会登录失败,因为mysql会将空格也当作密码的一部分。

image-20230816100637678

登录成功,先别着急操作数据库,此时还需要修改密码(即使操作数据库也没用,mysql会强制让你修改密码)

image-20230816100843820

执行下面的命令进行重置密码:

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

修改完成后,退出重新登陆一下mysql

# 退出登录
exit

mysql -uroot -p新密码

重新登录之后,再次查看数据库:

show databases;

可以看到,此时已经可以查看数据库了。

image-20230816101338595

远程连接

这里使用的mysql远程连接工具是SQLyog。

首先先关闭虚拟机的防火墙

systemctl stop firewalld

# 关闭防火墙开机自启动
systemctl disable firewalld

注:生产环境下不要轻易关闭服务器的防火墙。而是指定开放访问端口。

# 开启防火墙
systemctl start firewalld

# 开启自启动
systemctl enable firewalld

# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent

--permanent表示永久开放此端口。

打开SQLyog,创建新的连接,输入虚拟机ip地址,mysql密码,进行测试连接:

image-20230816110423677

image-20230816101907350

此时并没有那么顺利,因为MySQL为了保证数据安全,默认是禁止了远程登录的。所以会报出错误号码1130 Host '192.168.xxx.xxx' is not allowed to connect to this MySQL server错误

此时需要执行一些命令:

登录mysql

mysql -uroot -p新密码

查看mysql数据库

# 使用mysql数据库
USE mysql;

SELECT host FROM user where user = 'root';

image-20230816102342353

此时的注解访问地址为localhost,所以无法进行远程连接,更改一下即可:

UPDATE user set host = "%" where user = 'root';

这里的%代表所有ip都可以进行访问。

刷新mysql配置(或者重启mysql服务)

# 刷新
FLUSH PRIVILEGES;

# 退出mysql
exit
# 重启mysql服务
systemctl restart mysqld.service

此时再次用SQLyog进行测试连接时,发现还有一个报错,~已经开始烦躁了

image-20230816103312365

报错的原因是因为mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password。

所以此时输入命令修改加密规则:

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密码';

# 刷新
FLUSH PRIVILEGES;

此时可以查看user表中相关信息,是否修改成功:

# 使用mysql数据库
USE mysql

SELECT user,host,plugin FROM user WHERE user='root';

image-20230816104140829

说明此时已经修改成功了。

最后,再次使用SQLyog测试连接一下数据库。终于,连接成功!

image-20230816104613385

值得注意的是,这里只是测试安装,所以开放所有ip访问没有任何关系。但在实际开发生产中,开放所以ip访问可能会导致数据被泄露,所以会开放指定端口访问或者只允许本地(localhost)访问。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值