当前位置: 代码迷 >> 综合 >> mysql(Mariadb)
  详细解决方案

mysql(Mariadb)

热度:26   发布时间:2023-11-23 18:14:51.0

1. 介绍

  • mariadb就是mysql的分支,因为mysql听说要收费了,有人写了一个开源,免费的mysql,起名叫mariadb,用法和mysql一模一样
  • 阿里云的yum仓库,和mariadb官方的yum仓库,其实就是两个不同的url,提供了2个不同的yum仓库。
  • 阿里云的yum仓库中,软件版本可能较低,不会实时的更新I如果选择的是阿里云的yum仓库。

2. 安装

  • 如果显示没有,换一下yum源即可
yum install mariadb-server  mariadb -y

3.初始化mysql

3.1 介绍

  • 在确认 MariaDB 数据库软件程序安装完毕并成功启动后请不要立即使用。为了确保数据 库的安全性和正常运转,需要先对数据库程序进行初始化操作。这个初始化操作涉及下面 5 个 步骤。
  • ? 设置 root 管理员在数据库中的密码值(注意,该密码并非 root 管理员在系统中的密 码,这里的密码值默认应该为空,可直接按回车键)。
  • ? 设置 root 管理员在数据库中的专有密码。
  • ? 随后删除匿名账户,并使用 root 管理员从远程登录数据库,以确保数据库上运行的业
  • 务的安全性。
  • ? 删除默认的测试数据库,取消测试数据库的一系列访问权限。
  • ? 刷新授权列表,让初始化的设定立即生效。

3.2 初始化

3.2.1 命令

# 确保mariadb服务器启动后,
systemctl start  mariadb# 执行命令初始化(退出数据库执行)
mysql_secure_installation

3.2.2 步骤

Enter current password for root (enter for none):Set root password? [Y/n] y
New password:
Re-enter new password:Remove anonymous users? [Y/n] yDisallow root login remotely? [Y/n] n... skipping.Remove test database and access to it? [Y/n] yReload privilege tables now? [Y/n] yThanks for using MariaDB!

4. mysql授权sql

4.1 命令介绍

mysql使用grant命令对账户进行授权,grant命令常见格式如下grant 权限 on 数据库.表名 to 账户@主机名            对特定数据库中的特定表授权
grant 权限 on 数据库.* to 账户@主机名              对特定数据库中的所有表给与授权
grant 权限1,权限2,权限3 on *.* to 账户@主机名      对所有库中的所有表给与多个授权
grant all privileges on *.* to 账户@主机名      对所有库和所有表授权所有权限

4.2 创建mysql普通用户并授权

生产环境里不会死磕root用户,为了数据库的安全以及和其他用户协同管理数据库,就需要创建其他数据库账户,然后分配权限,满足工作需求。
MariaDB [(none)]> create user username@'%' identified by 'password';
MariaDB [(none)]> use mysql;
MariaDB [mysql]> select host,user,password from user where user='username';切换普通用户,查看数据库信息,发现无法看到完整的数据库列表
[root@master ~]# mysql -uusername -p -h 127.0.0.1
MariaDB [(none)]> show databases;退出数据库,使用root登录,开始权限设置
[root@master ~]# mysql -uroot -p
MariaDB [(none)]> use mysql;
##授予远程登录的权限
MariaDB [(none)]> grant all privileges on *.* to username@"%" identified by 'password';
MariaDB [mysql]> show grants for username@"%";移除权限
MariaDB [(none)]> revoke all privileges on *.* from username@"%";

4.3 给root授权,使其可以远程登录

授予所有的库所有的表权限,给用户root,在任何主机上,密码是1
grant all privileges on *.* to root@"%" identified by '1';
# 刷新权限,立即生效
flush privileges;# window上用root远程链接数据库
mysql -uroot -p*** -h 10.0.0.100

5. mysql备份与恢复

mysqldump命令用于备份数据库数据(全部的数据库) p密码 不能有空格 windows上不用写路径,直接 > db.sql
[root@master ~]# mysqldump -uroot -p1 --all-databases > /opt/db.sql# 单独导出一个数据库
mysqldump -u root -p -B ob_crm > opt/crm.sql进入mariadb数据库,删除一个db
[root@master ~]# mysql -uroot -p
MariaDB [(none)]> drop database s11;进行数据恢复,吧刚才重定向备份的数据库文件导入到mysql中
# 第一种在外部
[root@master ~]# mysql -uroot -p < /tmp/db.sql
# 第二种进入数据库
source /opt/db.sql;

  相关解决方案