http://hongge.blog.51cto.com/mysql
mariaDBsql
MariaDB 是MySQL的一个分支,从MySQL被甲骨文收购以后开发的一个替代品,目前所有兼容MySQL。数据库
MariaDB 是一个采用 Maria 存储引擎的 MySQL 分支版本,是由原来 MySQL 的做者 Michael Widenius 创办的公司所开发的免费开源的数据库服务器。安全
因为满MySQL被Oracle收购后的日渐封闭与缓慢的更新,众多Linux发行版逐渐抛弃了这MySQL数据库,而转向了MariaDB服务器
CentOS 7/RHEL7中,默认已经再也不提供mysql的安装源,取而代之的是mysql的原开发者另起炉灶开发的mariadb数据库,不只彻底兼容mysql并且比mysql更增强大。网络
首先安装mariadbsocket
#yum –y install mariadb mariadb-servertcp
拷贝配置文件(注意:若是/etc目录下面默认有一个my.cnf,直接覆盖便可)ide
cp /usr/share/mysql/my-huge.cnf /etc/my.cnf工具
启动mariadb服务并开机自动运行
Mariadb数据库仍然默认使用tcp 3306端口。
打开防火墙服务
安装完后,开始设置Mariadb数据库
#/usr/bin/mysql_secure_installation
输入上述命令后,按照提示操做
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 安装后默认没有root密码,直接回车
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] Y
New password: 输入root的新密码
Re-enter new password: 新密码确认
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] 删除匿名用户 Y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] 关闭root远程登陆 Y
... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] 删除test数据库 Y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] 肯定以上全部操做 Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
或执行mysqladmin为MariaDB数据库帐户root设置密码
Mariadb安装完毕后,管理员用户是root密码默认为空,能够执行mysqladmin设置帐户密码
如何重设管理员帐户root的密码
状况1:在已知mariadb数据库的ROOT用户密码的状况下,修改密码的方法:
一、 在SHELL环境下,使用mysqladmin命令设置:mysqladmin –u root –p password “新密码”回车后要求输入旧密码
二、 在MariaDB[(none)]>环境中,使用update命令,直接更新mysql库user表的数据,不过改完以后须要刷新:
update mysql.user set password=password(‘新密码’) where user=’root’;
flush privileges;
注意:mariadb的sql语句要以分号”;”结束
三、 在MariaDB[(none)]>环境中,使用grant命令,修改root用户的受权权限。
grant all on *.* to root@’localhost’ identified by ‘新密码’;
四、 在MariaDB里面,可使用 set password重置
状况2:如查忘记了MariaDB数据库的ROOT用户的密码,又如何作呢?方法以下:
一、 关闭当前运行的mariadb服务程序:
二、 使用mysqld_safe脚本以安全模式(不加载受权表)启动mariadb服务
/usr /bin/mysqld_safe --skip-grant-table &
三、 使用空密码的root用户登陆数据库,从新设置ROOT用户的密码
#mysql -u root
MariaDB[(none)]>Update mysql.user set password=password(‘新密码’) where user=’root’;
MariaDB[(none)]> flush privileges;
到此Mariadb安装并设置完毕,接下来能够测试一下:执行mysql命令链接mariadb数据库
如何更改mariadb默认的数据文件存储目录
mariadb默认的数据文档存储目录为/var/lib/mysql
要想将默认建立目录改为/data,须要一下操做:
一、建立/data目录
#mkdir /data
二、把mariadb服务停掉:
#systemctl stop mariadb.service
三、把/var/lib/mysql整个目录复制到/data
#cp -r /var/lib/mysql/* /data/
这样就把MySQL的数据文档复制到了/data下
四、编辑mariadb的配置文档/etc/my.cnf
在[client]下添加:
把原来的socket=/var/lib/mysql/mysql.sock,前边加#注释掉,添加socket=/data/mysql.sock(以防有问题再改回来)。
在[mysqld]下添加:
把原来的socket=/var/lib/mysql/mysql.sock,前边加#注释掉,添加socket=/data/mysql.sock(以防有问题再改回来)。
datadir =/data/ (这行没有,须要本身加上)
保存后退出。
#chown -R mysql:mysql /data
五、从新启动mariadb服务
systemctl start mariadb.service。
注:在my.cnf文件中添加skip-networking=1表示数据库只能被 localhost 访问。
skip-networking 只容许经过一个套接字文件(Unix/Linux系统)或经过命名管道(Windows系统)进行本地链接,不容许ICP/IP链接; 这提升了安全性,但阻断了来自网络的外部链接和全部的Java客户程序(Java客户即便在本地链接里也使用TCP/IP)。
如今能够开始用mariadb了,先看看基本的命令操做
显示数据库
建立数据库
建立数据库用户并授予权限
若是要撤销权限可使用revoke命令
注:全部的权限能够经过show priviledges\G 显示
还能够经过下面的方式建立用户并授予权限
查看当前登陆用户。
查看一下mysql数据库里面的user表
进入数据库
建立一个表,指定主键和各字段的名字类型,并向表中插入数据。
更新数据
复制一张表
更改表的结构,增长一个字段
删除表
建立另一张表,和第一张表绑定主键外键,级联删除
插入数据
作个简单的多表查询
从主表里面删除一行数据,确认级联删除有效
最后,看看数据库的备份和还原
Mariadb数据库的备份分为:冷备和热备
冷备份就是直接备份 /var/lib/mysql下面的数据库文件了(如cp、tar、dump、dd等)
热备能够经过 mysqldump实现,mysqldump 比较经常使用的,比较适合备份少许数据。能够实现远程备份表,数据库。
命令格式:
#mysqldump –u root –p [密码] [options] [数据库名] [表名] > /备份路径/备份文件名
备份整个数据库
查看一下这个生成的sql文件,本质是先删除现有表,而后建立一个新的,而后插入数据
备份数据库中指定的表
备份全部数据库
恢复数据库
模拟破坏数据
用备份还原数据
验证:
查看数据是否恢复,以下图所示:
有关mariadb的其余备份工具能够查询相关资料