安装 MariaDB

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也是可以的。

20170523a

如果要允许远程访问数据库的话,还需要把防火墙的相关服务打开:

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;

201705291

# 选择 mysql 数据库
USE mysql;
# 查看 mysql 数据库下有哪些 tables
SHOW tables;

201705292

# 查看 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 博客更换了域名,需要把文章默认的永久链接以及所有文章里插图的网址,由原来的chaishiwei.com改为192.168.1.88,文章默认链接在在wp_posts表的guid字段里,插图在wp_posts表的post_content字段里,那么指令就写为:

update wp_posts SET guid = replace(guid, 'chaishiwei.com', '192.168.1.88');
update wp_posts SET post_content = replace(post_content, 'chaishiwei.com', '192.168.1.88');

如果想让安全性更高,可以将'%'改为'192.168.1.123',表示该用户只能在 192.168.1.123 这个 IP 地址的主机上远程访问数据库。或者将'%'改为'192.168.1.%',表示该用户只能在 192.168.1.xxx 这个 IP 地址段范围的主机上远程访问数据库。

用来远程访问数据库的工具客户端有如下推荐:Sequel ProMyCliphpMyAdminDBeaver

上一篇 下一篇

 

© 2017 老柴的宅. Powered by Chaishiwei.com. 鄂ICP备11006811号