安装
[root@node1 ~]# yum install -y mariadb-server 安装这个会自动将依赖补充
开启服务
[root@node1 ~]# systemctl enable mariadb --now 表示现在自动启动服务可省略掉start启动步骤
配置密码方式
1.外部用户
MariaDB [(none)]> grant all privileges on *.* to "root"@"%" identified by '000000';
外部用户进入服务器时使用root用户的密码可以通过此方式修改
此语句可进行权限的设置于 grant all privileges on *.* 处
grant all privilege 将指定的表和数据库的所有的权限进行赋予给特定用户
on *.* 在<数据库>.<数据表>中
2.localhost本地用户
2.1 sql语句修改
MariaDB [(none)]> grant all privileges on *.* to "root"@"localhost" identified by '000000';
与之前的外部用户密码语句不同处在于"root"@"<此处>"
2.2 命令修改分两种
2.2.1 mysqladmin
格式 mysqladmin -u <用户> -p <原密码> password <新密码> -p在用户无密码时可省略
[root@node1 ~]# mysqladmin -uroot -p000000 password 123456
2.2.2 mysql_install_db 与 mysql_secure_installation
(1).mysql_install_db 用于二进制类的初始化 yum或dnf安装时会自动进行无需自行操作
(2).mysql_secure_installation 再次对mysql的配置
# 输入当前的 root 密码(直接按回车)
Enter current password for root (enter for none):
# 设置新的 root 密码
Set root password? [Y/n] Y
New password: password000000
Re-enter new password: password000000
# 删除匿名用户
Remove anonymous users? [Y/n] Y
# 禁止 root 用户远程登录
Disallow root login remotely? [Y/n] Y
# 删除测试数据库及其访问权限
Remove test database and access to it? [Y/n] Y
# 重新加载权限表
Reload privilege tables now? [Y/n] Y
2.二进制安装
[root@node1 ~]# tar -xzvf mysql-8.0.24-el7-x86_64.tar.gz -C /usr/local/
[root@node1 local]# mv mysql-8.0.24-el7-x86_64/ mysql
[root@node1 local]# cd mysql/
创建mysql运行用户
[root@node1 mysql]# groupadd mysql
[root@node1 ~]# useradd mysql -g mysql -M -s /sbin/nologin
创建数据保存目录
[root@node1 local]# mkdir mysql/{data,logs}
添加入mysql组中使其能够被使用
[root@node1 local]# chown -R mysql:mysql /usr/local/mysql/
[root@node1 local]# cd mysql/
[root@node1 mysql]# ls
bin data docs include lib LICENSE logs man README share support-files
[root@node1 mysql]# vi /etc/my.cnf
[root@node1 mysql]# cat /etc/my.cnf
[mysqld]
!includedir /etc/my.cnf.d
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
character_set_server=utf8
init_connect='SET NAMES utf8'
log-error= /usr/local/mysql/logs/mysqld.log
pid-file= /usr/local/mysql/data/node1.pid
explicit_defaults_for_timestamp=true
[root@node1 mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql --initialize
[root@node1 mysql]# cat logs/mysqld.log | grep password
2024-11-17T09:00:39.927771Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 8q1aoN=df/2 数据库生成的临时密码需要将其修改才能正常使用数据库
[root@node1 mysql]# cp -rf support-files/mysql.server /etc/init.d/mysql 将服务移动至初始化服务中方便启动和关闭
[root@node1 mysql]# systemctl start mysql
[root@node1 mysql]# mysql -uroot -p8q1aoN=df/2,
mysql> alter user 'root'@'localhost' identified by '000000'; 重置密码后方可使用其他命令
Query OK, 0 rows affected (0.00 sec)