Linux安装MySQL

OrangeWithCat Lv2

下载

链接: https://pan.baidu.com/s/1IRMs8EYaEo6HTKCUjuPajA?pwd=xwnf 提取码: xwnf

安装

创建文件夹
1
2
3
4
# 在 /soft 目录下创建一个空的文件夹mysql
mkdir /soft/mysql
# 进入这个新建的文件夹下
cd /soft/mysql
解压
1
2
3
4
# 在当前目录下(mysql)下创建一个 mysql-8.0.32 文件夹
mkdir mysql-8.0.32
# 解压安装包到该目录下
tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar -C mysql-8.0.32
查看文件夹

image-20240625225730045

解压后的文件都是 rpm 文件,所以需要用到 rpm 包资源管理器相关的指令安装这些 rpm 的安装包

在安装执行 rpm 安装包之前先下载一些插件,因为 mysql 里面有些 rpm 的安装依赖于该插件。

1
2
3
yum install openssl-devel
# 和
yum -y install libaio perl net-tools

安装完该插件之后,依次执行以下命令安装这些 rpm 包

rpm -ivh 包名

遇到的问题
mariadb 导致依赖检测失败
1
rpm -e mariadb-libs --nodeps
导入rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm出现的错误

mysql-community-client-plugins = 8.0.32-1.el7 被 mysql-community-client-8.0.32-1.el7.x86_64 需要
mysql-community-libs(x86-64) >= 8.0.11 被 mysql-community-client-8.0.32-1.el7.x86_64 需要
解决办法:
先安装以下这两个包:
mysql-community-client-plugins-8.0.32-1.el7.x86_64.rpm
mysql-community-libs-8.0.32-1.el7.x86_64.rpm

导入rpm -ivh mysql-community-test-8.0.32-1.el7.x86_64.rpm

perl(Data::Dumper) 被 mysql-community-test-8.0.32-1.el7.x86_64 需要
perl(JSON) 被 mysql-community-test-8.0.32-1.el7.x86_64 需要
perl(Test::More) 被 mysql-community-test-8.0.32-1.el7.x86_64 需要
解决办法

1
2
3
1.yum -y install autoconf
2.yum install perl-JSON.noarch -y
3.yum install perl-Test-Simple

配置

注意!!!

MySQL8设置表明大小写敏感只能在第一次启动前

设置不区分大小写

修改/etc/my.cnf 添加lower_case_table_names=1

设置sql模式

去除group by语法的严格模式

1
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'

启动

命令
  • 启动 MySQL 服务:systemctl start mysqld
  • 重启 MySQL 服务:systemctl restart mysqld
  • 关闭 MySQL 服务:systemctl stop mysqld
修改密码

rpm 安装 MySQL 会自动生成一个随机密码

1
cat /var/log/mysqld.log

登录后执行

1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

刷新权限

1
FLUSH PRIVILEGES;
开启远程访问
1
2
3
4
5
6
7
mysql> use mysql;

mysql> update user set user.Host='%' where user.User='root';

mysql> flush privileges;

mysql> select host,user from user;

只要有一个名为root的用户host为%就行

1
2
3
4
5
6
7
mysql> select host, user from user where user = 'root';
+-----------+------+
| host | user |
+-----------+------+
| % | root |
| localhost | root |
+-----------+------+

参考文献

Comments