MariaDB 是 MySQL 的一个分支。在意识到 Oracle 公司可能会对 MySQL 的许可做什么后,MariaDB 从 MySQL 中分离了出来,它作为 MySQL 的”向下替代品”,包含了一些优于 MySQL 的新特性。
yum -y install mysql
yum -y install mysql-devel
yum -y install mariadb*
装好 MariaDB 后,开启它,并设置为开机自启动:
systemctl start mariadb.service
systemctl enable mariadb.service
默认配置文件在/etc/my.cnf
,接下来要给管理员帐号设置密码
mysqladmin -u root password "要设置的密码"
设置好密码后,重启 MariaDB:
systemctl restart mariadb.service
在主机登录 MariaDB,输入以下指令:
mysql -u username -p -h host databasename
这里,username
指的是帐号,host
指的是主机地址(本机则可以输入为loaclhost
),databasename
为数据库实体。确认指令后,会要求输入密码,然后才能进入数据库。本机登录的话直接输入mysql -u username -p
也是可以的。
如果要允许远程访问数据库的话,还需要把防火墙的相关服务打开:
firewall-cmd --add-service=mysql --permanent
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
然后进行以下操作,开启远程访问:
# 把所有数据库的所有表的所有权限,赋值给位于所有IP地址的 root 用户,new_password 自定义
grant all privileges on *.* to 'root'@'%'identified by 'new_password';
以上操作会带来不安全因素,因此最好新建一个用户来进行远程登录数据库,并且只赋予部分数据库的使用权限:
# 新建用户:new_name 和 new_password 自定义
create user 'new_name'@'%' identified by 'new_password';
# 新建数据库:new_sql 自定义
create database new_sql;
# 给新用户分配使用新数据库的权限
grant all privileges on new_sql.* to 'new_name'@'%';
# 然后重启 MariaDB 让配置生效
systemctl restart mariadb.service
此时就可以进行远程连接了。
如果要对数据库进行删改,可以进行如下操作:
# 先登录到数据库
mysql -u root -p
# 列出数据库
SHOW databases;
# 删除 test 数据库
DROP database test;
# 选择 mysql 数据库
USE mysql;
# 查看 mysql 数据库下有哪些 tables
SHOW tables;
# 查看 user table 里有哪些 Columns
DESCRIBE user;
# 找出 user table 中 User column 的内容
SELECT User FROM user;
# 找出 user table 中 Host、User 和 Password column 的内容
SELECT Host, User, Password From user;
# 使用 DISTINCT 命令將重复的内容删除
SELECT DISTINCT USER FROM user;
删除帐号或帐号的某些权限:
# 列出所有帐号
SELECT User,Host FROM mysql.user;
# 查看某(user)帐号的相关权限
SHOW GRANTS FOR 'user'@'localhost';
# 修改某帐号的密码
SET PASSWORD FOR 'user'@'localhost' = password('new_password');
# 解除某帐号的权限
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'localhost';
# 删除某帐号
DROP USER 'user'@'localhost';
将数据库进行导入到处操作:
# 导入数据库:將 /home/backup.sql 导入到 new_sql 数据库
mysql -u root -p new_sql < /home/backup.sql
# 导出数据库:將 old_sql 数据库导出到 /home/backdown.sql
mysql -u root -p old_sql > /home/backdown.sql
将数据库内容进行批量替换:
update 表名 set 字段名 = replace(字段名,'被替换内容','要替换内容');
比如,wordpress 博客更换了域名,需要把文章默认的永久链接以及所有文章里插图的网址,由原来的chaisw.cn
改为192.168.1.88
,文章默认链接在在wp_posts
表的guid
字段里,插图在wp_posts
表的post_content
字段里,那么指令就写为:
update wp_posts SET guid = replace(guid, 'chaisw.cn', '192.168.1.88');
update wp_posts SET post_content = replace(post_content, 'chaisw.cn', '192.168.1.88');
如果想让安全性更高,可以将'%'
改为'192.168.1.123'
,表示该用户只能在 192.168.1.123 这个 IP 地址的主机上远程访问数据库。或者将'%'
改为'192.168.1.%'
,表示该用户只能在 192.168.1.xxx 这个 IP 地址段范围的主机上远程访问数据库。
用来远程访问数据库的工具客户端有如下推荐:Sequel Pro
,MyCli
,phpMyAdmin
,DBeaver
。