十二、MySQL8.0.32离线安装(适用于Linux-CentOS 7)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
十二、MySQL8.0.32离线安装适用于Linux-CentOS 7
前言
1CentOS6和CentOS7在MySQL的使用中的区别
防火墙 6是iptables7是firewalld
启动服务的命令 6是service7是systemctl
2查看是否安装过MySQL未安装请跳过
如果你是用rpm安装, 检查一下RPM PACKAGE
rpm -qa | grep -i mysql # -i 忽略大小写
检查mysql service
systemctl status mysqld.service
如果存在mysql-libs的旧版本包显示如下
rpm -qa | grep -i mysql
3MySQL的卸载未安装请跳过
① 关闭 mysql 服务
systemctl stop mysqld.service
② 查看当前 mysql 安装状况
rpm -qa | grep -i mysql
# 或
yum list installed | grep mysql
③ 卸载上述命令查询出的已安装程序
yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx
务必卸载干净反复执行 rpm -qa | grep -i mysql
确认是否有卸载残留
④ 删除 mysql 相关文件
查找相关文件
find / -name mysql
删除上述命令查找出的相关文件
rm -rf xxx
⑤ 删除 my.cnf
rm -rf /etc/my.cnf
1、下载
1认准官方网站
2选择“DOWNLOADS”
3 MySQL的三大版本
aMySQL Enterprise Edition企业版本付费
bMySQL Cluster CGE高级集群版收费
cMySQL Community Server社区版开源
个人使用选择“社区版”即可
本文章以“CentOS-7”为例
选中“RPM Bundle”下载
点击下图超链接进行下载
下载完成后如下图
解压后文件如下图
4使用远程工具
登录账户 root/密码
执行命令
cd /opt/
ll
根据MySQL版本新建文件夹存放MySQL安装包
再执行命令
mkdir mysql-8.0.32-1.el7.x86_64
5使用文件传输工具
将MySQL安装包上传至“/opt/mysql-8.0.32-1.el7.x86_64”目录下
6解压MySQL安装包
执行命令
tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar
2、安装
1准备工作
在安装之前先做三项准备操作。
a由于 MySQL 安装过程中会通过 MySQL 用户在 /tmp 目录下新建 tmp_db 文件。赋予其权限执行:
执行命令
chmod -R 777 /tmp
b检查依赖是否存在CentOS7安装了桌面环境默认存在
执行命令
rpm -qa|grep libaio
rpm -qa|grep net-tools
cMySQL 与 mysql-libs 冲突提前移除
执行命令
yum remove mysql-libs
或者
rpm -e mariadb-libs --nodeps
2开始安装
rpm Redhat Package Manage缩写通过RPM的管理用户可以把源代码包装成以rpm为扩展名的文件形式易于安装。
-i --install 安装软件包
-v–verbose 提供更多的详细信息输出
-h–hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好)展示进度条
执行命令执行安装严格按照顺序
rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm
此时安装完毕
3、查看MySQL版本
执行如下命令如果成功表示安装MySQL成功。类似java --version可以显示出版本信息。
执行命令
mysql --version
或者
mysqladmin --version
执行如下命令查看是否安装成功。需要增加 -i 不用区分大小写否则搜索不到。
执行命令
rpm -qa|grep -i mysql
4、服务初始化
为了保证数据库目录与文件的所有者为mysql登录用户如果你是以root身份运行mysql服务需要执行下面的命令初始化
执行命令
mysqld --initialize --user=mysql
说明–initialize选项默认以“安全”模式来初始化则会为root用户生成一个密码并将该密码标记为过期
登录后你需要设置一个新的密码生成的临时密码
会往日志中记录一份。
查看密码
执行命令
cat /var/log/mysqld.log
5、启动MySQL查看状态
mysqld
这个可执行文件就代表着MySQL
服务器程序运行这个可执行文件就可以直接启动一个服务器进程。
1查看服务状态
systemctl status mysqld
2启动服务
systemctl start mysqld
再次查看服务启动状态
3停止服务
systemctl stop mysqld.service
4重启服务
systemctl restart mysqld.service
查看进程
ps -ef | grep -i mysql
6、查看MySQL服务是否自启动
systemctl list-unit-files|grep mysqld.service
默认是enabled。
如不是enabled可以运行如下命令设置自启动。
systemctl enable mysqld.service
如果希望不进行自启动运行如下命令设置。
systemctl disable mysqld.service
7、 MySQL登录
1首次登录
mysql -hlocalhost -P3306 -uroot -p
在Enter password录入初始化密码
2修改密码
因为初始化密码默认是过期的所以查看数据库会报错。
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
5.7版本之后不含5.7mysql加入了全新的密码安全机制。设置新密码太简单会报错。
改为更复杂的密码规则之后设置成功可以正常使用数据库了
8、设置远程登录
1连接超时问题
在用SQLyog或Navicat或者DBeaver中配置远程连接Mysql数据库时遇到如下报错信息这是由于Mysql配置了不支持远程连接引起的。
2确认网络
在远程机器上使用ping ip地址
保证网络畅通
3在远程机器上使用telnet命令 保证端口号开放
访问
语法 telnet ip地址 端口号
拓展 telnet命令开启
出现连接失败问题。
4关闭防火墙或开放端口
方式一关闭防火墙
CentOS6
service iptables stop
CentOS7
查看防火墙状态
systemctl status firewalld.service
打开防火墙
systemctl start firewalld.service
关闭防火墙
systemctl stop firewalld.service
设置开机启用防火墙
systemctl enable firewalld.service
设置开机禁用防火墙
systemctl disable firewalld.service
方式二开放端口
查看开放的端口号
firewall-cmd --list-all
设置开放的端口号
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent
重启防火墙
firewall-cmd --reload
5Linux下修改配置
在Linux系统MySQL下测试
use mysql;
select Host,User from user;
可以看到root
用户的当前主机配置信息为localhost
修改Host为通配符%
。
Host
列指定了允许用户登录所使用的IP比如user=root
Host=192.168.1.1
。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。user=root
Host=localhost
表示只能通过本机客户端去访问。
而 %
是个 通配符 如果Host=192.168.1.%
那么就表示只要是IP地址前缀为“192.168.1.
”的客户端都可以连接。如果 Host=%
表示所有IP都有连接权限。
**注意**在生产环境下不能为了省事将host设置为%这样做会存在安全问题具体的设置可以根据生产环境的IP进行设置。
update user set host = '%' where user ='root';
Host修改完成后记得执行flush privileges;
使配置立即生效
flush privileges;
问题一 如果出现配置新连接报错错误号码 2058
分析是 mysql 密码加密方法变了。mysql 8.0
默认使用 caching_sha2_password
身份验证机制。从原来的mysql_native_password
更改为 caching_sha2_password
。所以需要将caching_sha2_password
修改为mysql_native_password
即可。
**解决方法**Linux下 mysql -u root -p
登录你的 mysql 数据库然后 执行这条SQL
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
然后在重新配置SQLyog的连接则可连接成功了OK。
问题二 与问题一几乎一样用问题一的解决方式也可以
解决办法 JDBC 连接串中加入 allowPublicKeyRetrieval=true
参数
参数修改为后可以再次修改为false
但是这样每次建立新连接的时候都需要修改为true
。
连接成功