ruoyi后台管理系统部署-2-安装mysql

发布时间:2024年01月14日

centos7 mysql 安装

1. 手动安装

安装

首先查看系统是否安装了:

rpm -qa|grep mariadb
rpm -qa | grep mysql
systemctl status mysqld
find / -name mysql.cnf

在这里插入图片描述
卸载自带的 mariadb:

rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

去官网下载 mysql 安装包:
前往mysql官网下载rpm包,centos选择red hat:mysql下载地址
上传至服务器,解压

# 解压 tar 用 -xvf,解压.tar.gz 用 -zxvf
tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar

依次安装包:

rpm -ivh mysql-community-common-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.44-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.44-1.el7.x86_64.rpm
yum install libaio-devel
rpm -ivh mysql-community-server-5.7.44-1.el7.x86_64.rpm

centos7 安装mysql 错误:libaio.so.1()(64bit) is needed by mysql-community-server-5.7.44-1.el7.x86_64:
需要安装:yum install libaio-devel

初始化数据库:

mysqld --initialize 

初始化的时候,会生成随机密码,查看密码:

cat /var/log/mysqld.log | grep 'password'

更改mysql数据库目录的所属用户及其所属组,然后启动mysql数据库:

chown mysql:mysql /var/lib/mysql -R
systemctl start mysqld.service
# 查看数据库运行状态
systemctl status mysqld.service

连接mysql:

mysql -uroot -p
#输入密码
#重置密码
set password=password('root');
#创建用户及权限分配:
create user 'root'@'%' identified by 'root'; 

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

flush privileges;

exit

设置不区分大小写:

lower_case_table_names = 1

重启服务

systemctl restart mysqld
systemctl status mysqld

卸载

卸载是按照安装顺序逆序卸载:
在这里插入图片描述

yum 安装

  1. 下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
  1. 安装msyql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
  1. 检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"

在这里插入图片描述

  1. 安装
# 第一步如果没有执行,会报错,如下面的图片。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install mysql-community-server

在这里插入图片描述
5. 启动

systemctl start mysqld

# 查看状态
systemctl status mysqld

# 设置开机启动
systemctl enable mysqld
systemctl daemon-reload
  1. 初始化
    按照手动安装上面的步骤
grep 'temporary password' /var/log/mysqld.log

如果没有返回,找不到root密码,解决方案:

# 1删除原来安装过的mysql残留的数据(这一步非常重要,问题就出在这)
rm -rf /var/lib/mysql
# 2 重启mysqld服务
systemctl restart mysqld
# 3 再去找临时密码
grep 'temporary password' /var/log/mysqld.log
  1. mysql 安全配置
mysql_secure_installation

运行这个命令,会让你更改密码,删除测试数据库,禁止root远程登录权限。
8. 修改密码策略
首先备份 my.cnf

cp /etc/my.cnf /etc/my.cnf.bak

在/etc/my.cnf文件添加 validate_password_policy 配置,指定密码策略

vi /etc/my.cnf.bak
# 在文件最后添加
validate_password = off	
# 重启服务
systemctl restart mysqld

Mysql的root用户,只能本地访问,这里在创建一个远程可以访问的 用户。

GRANT ALL PRIVILEGES ON *.* TO 'ruoyi'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

flush privileges;

相关命令:

# 查看所有用户,以root登录mysql
SELECT DISTINCT CONCAT('User: ''', user, '''@''', host, ''';') AS query FROM mysql.user;

## 添加权限
GRANT ALL PRIVILEGES ON *.* TO ‘用户名’@’%’ ;
FLUSH PRIVILEGES;

# 查看用户权限
SHOW GRANTS FOR '用户名'@'%';


# 删除用户
DROP USER '用户名'@'%';

# 撤销权限
REVOKE ALL PRIVILEGES ON *.* FROM  ‘用户名’@’%’ ;
FLUSH PRIVILEGES;

  1. 忽略大小写
    登陆mysql查看:
mysql> show variables like "%case%";
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   |
| lower_case_table_names | 0     |  ##0区分 1 不区分
+------------------------+-------+
2 rows in set (0.00 sec)

修改配置文件:/etc/my.cnf

# 0:区分大小写,1:不区分大小写
lower_case_table_names =1

重启服务生效:

systemctl restart mysqld

常见错误:

  1. ERROR 1067 (42000): Invalid default value for 'FAILD_TIME' (对TIMESTAMP 类型的子段如果不设置缺省值或没有标志not null时候在创建表时会报这个错误)
    这是因为sql_mode中的NO_ZEROR_DATE导制的,在strict mode中不允许’0000-00-00’作为合法日期
    排查:
show variables like 'sql_mode';

将上面的NO_ZERO_DATE改为下面的ALLOW_INVALID_DATES
修改my.cnf

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

查看 mysql 安装信息:

rpm -ql mysql-community-server
rpm -qc mysql-community-server
rpm -qi mysql-community-server
  • -ql 用于列出包安装的所有文件。
  • -qc 用于查看包的内容,列出文件和目录。
  • -qi 用于获取包的详细信息。

配置默认字符集:在 my.cnf 添加:

[client]
default-character-set=utf8

[mysql]
# 配置默认字符集
default-character-set=utf8
 
[mysqld]
# 配置字符集和排序 
character-set-server=utf8
collation-server=utf8_general_ci

设置时区:

[mysqld]
default-time_zone='+8:00'

在MySQL 5.7的配置文件my.cnf中,[client][mysql][mysqld]是三个不同的配置节,它们分别用于配置客户端连接参数、MySQL客户端(客户端库)参数和MySQL服务器参数。下面是每个节的作用:

  1. [client]
    这个节包含客户端连接到MySQL服务器时使用的参数。这些参数影响客户端如何与服务器交互。例如,port指定客户端连接的端口,socket指定客户端使用的Unix域套接字文件的位置。
  2. [mysql]
    这个节包含MySQL客户端库(客户端工具和库)的参数。这些参数影响MySQL客户端程序的行为。例如,prompt定义了MySQL客户端提示符的格式。
  3. [mysqld]
    这个节包含MySQL服务器参数。这些参数定义了服务器的运行方式,包括如何处理连接、数据存储、日志记录、安全设置等。例如,port指定服务器监听的端口,basedirdatadir指定了服务器的安装目录和数据目录,log-error指定了错误日志的文件路径。
    通常,my.cnf文件包含这三个节,但是[mysql]节在某些情况下可能不存在,因为它是可选的。如果[mysql]节不存在,相关的参数可能会被放在[client][mysqld]节中,或者直接在命令行中指定。
    在修改my.cnf文件时,需要注意:
  • 每个节的开头是一个方括号,结尾是一个闭合的方括号。
  • 节内的配置项遵循相同的格式,即键值对,其中键(参数名)后面跟有一个等号,然后是参数的值。
  • 配置文件中的路径应该使用绝对路径,或者在客户端连接时指定相对路径。
  • 有些参数可以同时在多个节中指定,但在不同节中指定的参数可能会相互覆盖。
    正确地配置my.cnf文件对于确保MySQL服务器的安全性、性能和稳定性至关重要。
文章来源:https://blog.csdn.net/xingkongtianyuzhao/article/details/135583844
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。