一、安装前的准备工作
1. 确认目前服务器上是否存在MySQL
rpm -qa | grep mysql
如提示没有rpm命令,我们需要安装rpm,命令:yum install rpm
说明:若返回空信息,就说明当前环境没有安装MySQL
2.查看MySQL的相关的配置文件、源代码和帮助文档的位置
whereis mysql
ps:如果有会返回mysql相关的路径
3.通过上述找到对应的目录删除对应的mysql的相关文件
rpm -e --nodeps mysql-xxxx
-- nodeps 参数,跳过依赖检查
说明:如果你当前环境没有安装mysql请忽略2,3步骤。
二、下载MySQL
下载地址:MySQL :: Download MySQL Community Server
1.选择对应的Linux版本和x86/x64进行下载
2. 下载必须的MySQL组件 Server、Client、Common、Libs
3. 上传到服务器某个位置
可以通过远程文件传输工具传输(xftp),不局限于xftp其他传输文件工具均可。
三、安装MySQL组件
前提:
安装顺序:common→libs→client→server
使用rpm -ivh 包名 安装组件
注:参数ivh中,i-install安装;v-verbose进度条;h-hash哈希校验
1. 安装common组件
rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm
2. 安装libs组件
rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm
3. 安装client组件
rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm
4. 安装server组件
rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm
5. 查看MySQL安装结果
rpm -qa | grep mysql
6. 查看MySQL的状态
systemctl status mysqld 默认没启动
7. 启动MySQL
systemctl start mysqld
四、MySQL配置
现在我们登不上MySQL,因为密码是加密的,查看命令
cat /var/log/mysqld.log | grep password
1. 在/etc/my.cnf文件中添加skip-grant-tables
vim /etc/my.cnf
说明:skip-grant-tables是MySQL配置文件(my.cnf)中的一个选项,用于在MySQL服务启动时跳过权限验证,从而让所有用户都具有完全的访问权限。这个选项通常只用于特定的维护任务,并不适合在生产环境中长期使用。(所以我们登录之后修改密码就关掉)
保存并退出 :wq
重启MySQL
systemctl restart mysqld
如下图所示:登录成功。
1. 修改密码
(1)切换到mysql库
use mysql;
(2)查看当前用户信息:执行以下SQL查询语句,查看当前用户的用户名和相关权限
select user, host, authentication_string from user;
说明:在之前的版本中,密码字段的字段名是 password,5.7版本改为了 authentication_string
(3)使用sql命令修改root账号密码
update user set authentication_string=password('<new_password>') where user='用户';
(4)刷新权限 flush privileges;
3. 退出数据库
exit
4. 删除/etc/my.cnf文件中的skip-grant-tables 保存并退出重启MySQL
vim /etc/my.cnf
:wq
systemctl restart mysqld
5. 重新登录测试
mysql -u root -p
输入密码:登录成功
登录之后遇到,需要重新设置密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'H+oAVQ2Bq1';
刷新权限 flush privileges;
五、重新设置数据库数据存放位置
1. 查看默认数据库路径存放位置
show variables like "%datadir%";
2. 创建一个目录用于存放mysql数据
mkdir /data/mysql/data
3. 停止mysql
systemctl stop mysqld
4. 将默认位置的mysql存放复制到我们想要的位置
cp -arp /var/lib/mysql /data/mysql/data
-arp 参数就是为了 保持原文件目录和文件的权限 直接复制到目标路径下。
5. 设置权限
chown -R msyql:mysql /data/mysql/data/mysql
6. 修改配置文件
vim /etc/my.cnf
7. 重启mysql看是否生效
systemctl start mysqld
8. 连接mysql
mysql -u root -p
报错如下:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
原因:找不到这个sock文件
解决方法:
(1)先找.sock文件
find / -name mysql.sock
(2)在/etc/my.cnf 中添加如下
[client]
default-character-set=utf8
socket=/data/mysql/data/mysql/mysql.sock
[mysql]
default-character-set=utf8
socket=/data/mysql/data/mysql/mysql.sock
9.重启数据库
10.重新登录
11.查看数据库存放位置是否成功
六、开启mysql远程访问权限,允许远程连接
1. 登录mysql
mysql -u root -p
2. 选择mysql数据库
use mysql
3. 修改配置
update user set host='%' where user='root';
4. 刷新权限,使其生效
flush privileges;
5. 退出
exit
参考:
openEuler基础(二十六)RPM方式安装软件(MySQL5.7)_openeuler安装mysql5.7_看山还是山,看水还是水的博客-CSDN博客
MySQL 报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket_白墨石的博客-CSDN博客