数据库MariaDB及MySQL

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/gongxifacai_believe/article/details/85164010

1、MariaDB

(1)MariaDB的特性:
1)插件式存储引擎:存储管理器有多种实现版本,彼此间的功能和特性可能略有区别;用户可根据需要灵活选择,存储引擎也称为“表类型”。
MyISAM:不支持事务;
InnoDB --> XtraDB :支持事务;
2)诸多扩展和新特性;
3)提供了较多的测试组件;
(2)安装和使用MariaDB
安装方式:
1)rpm包:
(a) 由OS的发行商提供;
(b) 程序官方提供;
2)源码包;
3)通用二进制格式的程序包;

通用二进制格式安装MariaDB:
1)准备数据目录:以/mydata/data目录为例;
2)安装配置mariadb
# useradd -r mysql
# tar xf mariadb-VERSION.tar.xz -C /usr/local
# cd /usr/local
# ln -sv mariadb-VERSION mysql
# cd /usr/local/mysql
# chown -R root:mysql ./*
# scripts/mysql_install_db --user=mysql -datadir=/mydata/data
# cp support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
3)提供配置文件
ini格式的配置文件,各程序均可通过此配置文件获取配置信息:[program_name]
OS Vendor提供mariadb rpm包安装的服务的配置文件查找次序:
/etc/mysql/my.cnf --> /etc/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf
通用二进制格式安装的服务程序其配置文件查找次序:
/etc/my.cnf --> /etc/mysql/my.cnf --> --default-extra-file=/PATH/TO/CONF_FILE --> ~/.my.cnf
获取其读取次序的方法:mysqld --verbose --help
# cp support-files/my-large.cnf /etc/my.cnf
添加三个选项:

datadir = /mydata/data
innodb_file_per_table = ON
skip_name_resolve = ON

4)启动服务
# service mysqld start
(3)MariaDB程序的组成
C:Client
mysql:CLI交互式客户端程序;
mysqldump:备份工具;
mysqladmin:管理工具;
mysqlbinlog:二进制日志文件生成工具;
S:Server
mysqld
mysqld_safe:建议运行服务端程序;
mysqld_multi:多实例;
三类套接字地址:
IPv4, 3306/tcp
Unix Sock:/var/lib/mysql/mysql.sock, /tmp/mysql.sock
C <–> S: localhost, 127.0.0.1

2、MySQL

mysql [OPTIONS] [database]
常用选项:
-uUSERNAME:用户名,默认为root;
-hHOST:远程主机(即mysql服务器)地址,默认为localhost;
-p[PASSWORD]:USERNAME所表示的用户的密码; 默认为空;
注意:mysql的用户账号由两部分组成:‘USERNAME’@‘HOST’,其中HOST用于限制此用户可通过哪些远程主机连接当前的mysql服务;
HOST的表示方式,支持使用通配符:
%:匹配任意长度的任意字符:172.16.%.%,172.16.0.0/16;
_ :匹配任意单个字符;
-Ddb_name:连接到服务器端之后,设定其指明的数据库为默认数据库;
-e ‘SQL COMMAND;’:连接至服务器并让其执行此命令后直接返回;
(1)命令
客户端命令:本地执行;
mysql> help
\u db_name:设定哪个库为默认数据库;
\q:退出;
\d CHAR:设定新的语句结束符;
\g:语句结束标记;
\G:语句结束标记,结果竖排方式显式;
服务端命令:通过mysql连接发往服务器执行并取回结果;
注意:每个语句必须有语句结束符,默认为分号( ; )。
(2)用户账号及权限管理
用户账号:‘username’@‘host’
\host:此用户访问当前mysql服务器时,允许其通过哪些主机远程创建连接;
表示方式:IP,网络地址、主机名、通配符(%和_);
禁止检查主机名:my.cnf

[mysqld]
skip_name_resolve = ON

创建用户账号:CREATE USER 'username'@'host' [IDENTIFIED BY 'password'];
删除用户账号:DROP USER ’user‘@’host' [, user@host] ...
授权:权限级别有管理权限、数据库、表、字段、存储例程;
GRANT priv_type,... ON [object_type] db_name.tbl_name TO 'user'@'host' [IDENTIFIED BY 'password'];
priv_type: ALL [PRIVILEGES];
db_name.tbl_name:
 * . * :所有库的所有表;
db_name.*:指定库的所有表;
db_name.tbl_name:指定库的特定表;
db_name.routine_name:指定库上的存储过程或存储函数;
查看指定用户所获得的授权:
SHOW GRANTS FOR 'user'@'host'
SHOW GRANTS FOR CURRENT_USER;
回收权限:REVOKE priv_type, ... ON db_name.tbl_name FROM 'user'@'host';
注意:
(a) MariaDB服务进程启动时,会读取mysql库的所有授权表至内存中;
(b) GRANT或REVOKE命令等执行的权限操作会保存于表中,MariaDB此时一般会自动重读授权表,权限修改会立即生效;
© 其它方式实现的权限修改,要想生效,必须手动运行FLUSH PRIVILEGES命令方可;
加固mysql服务器,在安装完成后,运行mysql_secure_installation命令;
(3)MySQL的图形管理组件
phpMyAdmin(运行于LAMP)、Navicat、Mysql-Front、ToadForMySQL、SQLyog等。

猜你喜欢

转载自blog.csdn.net/gongxifacai_believe/article/details/85164010