Linux 下安装mysql (2022.08.31)
安装mysql
https://blog.csdn.net/xhmico/article/details/125197747
-
下载
- 官网 https://www.mysql.com/
- 进入官网之后,点击DOWNLOADS
- 进入页面后,MySQL Enterprise Edition 是商业版,下面有个 MySQL Community(GPL)Downloads 是社区版,选择社区版
- 新页面选择右列最后一个选项Download Archives
- 进入页面,选择第一个 MySQL community Server
- 根据服务器配置选择,我当前安装环境CentOS 7 ,所以Operating System 选择 Red Hat Enterprise Linux / Oracle Linux,OS version 选择 Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit) 选择第一个点击Download 下载
-
安装
-
先创建文件夹来存放安装包
cd /opt/module/ mkdir mysql cd mysql
-
通过 Xftp 将下载的安装包上传到mysql目录下
-
在该目录下再创建一个文件夹,并将安装包解压到该文件夹中
# 创建对应版本号的 文件夹 mkdir mysql-8.0.28 # 解压安装包到该目录下 tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.28
-
解压完成之后,切换到mysql-8.0.28目录下,查看解压后的文件
-
可以看到,解压后的文件都是rpm文件,所以需要用到rpm包资源管理器相关的指令安装这些rpm安装包。
在安装执行rpm安装包之前先下载openssl-devel插件,因为mysql里面的安装依赖于该插件
yum install openssl-devel
-
安装完该插件后,依次执行以下命令安装这些rpm包
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
注意,安装rpm 包时提示 依赖检测失败,解决方案
# 我在安装rpm包时遇到了以下两个问题 # 1. 在执行rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm # 提示错误: # 错误:依赖检测失败: # mariadb-libs 被 mysql-community-libs-8.0.26-1.el7.x86_64 取代 # 解决办法:卸载mariadb-libs rpm -e mariadb-libs --nodeps # 在重新执行该rpm命令 rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm # 2. 在执行rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm # 具体错误信息忘了,大致也是依赖冲突或检测失败 # 解决办法:在该命令后面加上 --nodeps rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm --nodeps
-
启动服务
-
在Linux中,MySQL安装好之后,系统会自动注册一个服务,服务名称是mysqld,所以可以通过以下命令操作MySQL
# 启动MySQL服务 systemctl start mysqld # 重启MySQL服务 systemctl restart mysqld # 关闭MySQL服务 systemctl stop mysqld
-
这里先启动MySQL服务
systemctl start mysqld
-
rpm 安装MySQL会自动生成一个随机密码,可在 /var/log/mysqld.log 这个文件中查找该密码
cat /var/log/mysqld.log // 使用这条命令可以更精准的查询临时密码,因为,有时可能会是有多个临时密码(当设置忽略大小写时遇到过,有四个临时密码,是最后一个才是正确的) grep "A temporary password" /var/log/mysqld.log # 在显示结果的第六行, # [Note] [MY-010454] [server] A temporary password is generated for root@localhost: JAgc=S-:4fGC # 这里就是 root账号的临时密码: JAgc=S-:4fGC # 有了账号和密码,就可以连接MySQL了 mysql -u root -p #然后输入临时密码
-
修改root用户密码
-
临时密码太难记忆,可以连接MySQL后进行修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; -- 这里可能会提示 Your password does not satisfy the current policy requirements,意思是密码不符合规定的要求,就是密码不够长,没特殊符号,没大小写等,安全性低的意思。 -- 这时,要么符合规范设置密码。要么修改密码的校验规则 -- 将密码复杂度校验调整简单类型 set global validate_password_policy = 0; -- 设置密码最少位数限制为 4 位 set global validate_password_length = 4; -- 这样就可以设置简单的密码了
-
-
-
远程连接MySQL
-
windows 下 Navicat 连接虚拟机中CentOS 7 中的MySQL
- Navicat中点击新建连接
- 主机名为虚拟机 CentOS 7 的 IP地址,端口为3306,用户名为root,密码为root的密码
-
测试连接时,报错
-
先检查虚拟机的防火墙是否关闭
-
在检查mysql服务是否启动
-
-
报错:
https://blog.csdn.net/xu710263124/article/details/116990516
Host '192.168.x.1' is not allowed to connect to this MySQL server
1. 报错原因:权限问题,当前主机host没有连接远程mysql数据库的权限
2. 解决办法:修改mysql数据库中user表root用户的主机地址
# 使用root用户登录mysql数据库 mysql -u root -p
# 登录成功后 # 切换到mysql数据库 use mysql; # 查询user表中root用户的主机信息 select user, host from user; # 修改root用户的主机信息为 ‘ % ’ update user set host='%' where user='root'; # 再次查询,发现host信息已被修改 select user,host from user; # 刷新权限,使操作生效 flush privileges;
-
报错:
-
第一个错误解决后报的第二个错
-
报错 大概意思是 root 用户没有权限连接
-
解决办法:为root用户分配权限
-- 虚拟机中通过 mysql -u root -p 进入数据库 -- 修改root权限 grant all on *.* to 'root'@'localhost'; -- 刷新权限,使操作生效 flush privileges;
-
-
-
Mysql8.0 设置忽略大小写
-
当修改在mysql8.0安装完成之后,第一次启动初始化之前
vim /etc/my.cnf // 编辑 my.cnf 文件 在[mysqld]下面添加 lower_case_table_names=1
-
如果需要在mysql初始化完成之后才执行上述修改,会导致mysql无法重新启动。
会提示类似:Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ 的错误
解决办法
-
此解决办法将会有后果:
会删除所有mysql数据, 会重置mysql8.0所有配置, 考虑好再用,记得提前备份mysql数据
service mysqld stop // 停止mysql服务 rm -rf /var/lib/mysql // 删除mysql文件夹所有数据 service mysqld start // 重启mysql服务 重启后需要重新修改临时密码,重新执行 远程连接MySQL操作
-