MySQL和MariaDB
官方网站:
https://www.mysql.com/
https://www.mariadb.org/
官方文档:
https://dev.mysql.com/doc/
https://mariadb.com/kb/en/
版本演变:
MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 --> 8.0
MariaDB:5.5 --> 10.0 --> 10.1 --> 10.2 --> 10.3
MariaDB的特性
- 插件式存储引擎:也称为“表类型”,存储管理器有多种实现版本,功能和特性可能均略有差别;用户可根据需要灵活选择,MySQL5.5.5开始innoDB引擎是MySQL默认引擎
MyISAM ==> Aria
InnoDB ==> XtraDB - 单进程,多线程
- 诸多扩展和新特性
- 提供了较多测试组件
- 开源
安装MariaDB
MariaDB安装方式:
- 源代码:编译安装
- 二进制格式的程序包:展开至特定路径,并经过简单的配置后即可使用
- 程序包管理器管理的程序包
- CentOS安装光盘
- 项目官方:
https://downloads.mariadb.org/mariadb/repositories/
RPM包安装MySQL
RPM包安装:
安装光盘直接提供
- CentOS 6:
mysql-server:服务器包
mysql:客户端工具包 - CentOS 7:
mariadb-server:服务器包
mariadb:客户端工具包
提高安全性
mysql_secure_installation
- 设置数据库管理员root口令
- 禁止root远程登录
- 删除anonymous用户账号
- 删除test数据库
用户账号
mysql用户账号由两部分组成:
'USERNAME'@'HOST'
说明
- HOST:限制此用户可通过哪些远程主机连接mysql服务器
- 支持使用通配符:
%:匹配任意长度的任意字符
172.16.0.0/255.255.0.0 或 172.16.%.%
_:匹配任意单个字符
MariaDB程序
客户端程序
- mysql:交互式的CLI工具
- mysqldump:备份工具,基于 mysql 协议向 mysqld 发起查询请求,并将查得的所有数据转换成 INSERT 等写操作语句保存文本文件中
- mysqladmin:基于 mysql 协议管理 mysqld
- mysqlimport:数据导入工具
MyISAM存储引擎的管理工具:
- myisamchk:检查MyISAM库
- myisampack:打包MyISAM表,只读
服务器端程序
- mysql_safe
- mysqld
- mysqld_multi:多实例
示例:mysqld_multi --example
Mysql客户端
mysql使用模式:
交互式模式:
- 可运行命令有两类:
- 客户端命令:
\h,help
\u,use
\s,status
\!,system - 服务器端命令:
SQL,需要语句结束符 " ; "
- 客户端命令:
脚本模式:
~]# mysql -uUSERNAME -pPASSWORD < /path/somefile.sql
mysql> source /path/from/somefile.sql
mysql客户端可用选项:
-A,--no-auto-rehash:禁止补全
-u,--user=:用户名,默认为root
-h,--host=:服务器主机,默认为localhost
-p,--password=:用户名密码,建议使用-p,默认为空密码
-P,--port=:服务器端口
-S,--socket=:指定连接socket文件路径
-D,--database=:指定默认数据库
-C,--compress:启用压缩
-e "SQL":执行SQL命令
-V,--version:显示版本
-v,--verbose:显示详细信息
--print-defaults:获取程序默认使用的配置
socket地址
服务器监听的两种socket地址:
- ip socket:监听在tcp的3306端口,支持远程通信
- unix sock:监听在sock文件上,仅支持本机通信
如:/var/lib/mysql/mysql.sock
说明:host为localhost,127.0.0.1时自动使用unix sock
执行命令
- 运行mysql命令:默认空密码登录
mysql> use mysql mysql> SELECT user(); #查看当前用户 mysql> SELECT User,Host,Password FROM user;
- 登录系统:
~]# mysql -uroot -p
- 客户端命令:本地执行,每个命令都有完整形式和简写格式
如:mysql> help mysql> status 或 \s
- 服务端命令:通过mysql协议发往服务器执行并取回结果
每个命令都必须有命令结束符号,默认为分号 " ; "
mysql> SELECT VERSION();
服务器端配置
服务器端(mysqld):
工作特性有多种配置方式
- 命令行选项:
- 配置文件:类ini格式
集中式的配置,能够为mysql的各应用程序提供配置信息
格式:parameter = value[mysqld] [mysqld_safe] [mysqld_multi] [mysql] [mysqldump] [server] [client]
说明:
_ 和 - 相同
0,OFF,FALSE 意义相同;1,ON,TRUE 意义相同
配置文件
后面覆盖前面的配置文件,顺序如下:
-
/etc/my.cnf
:Global选项 -
/etc/mysql/my.cnf
:Global全局选项 -
SYSCONFDIR/my.cnf
:Global选项 -
$MYSQL_HOME/my.cnf
:Server-specific选项 -
--defaults-extra-file=path
:命令行参数选项 -
~/.my.cnf
:User-specific选项
获取可用参数列表:
~]# /usr/libexec/mysqld --help -verbose
~]# /usr/libexec/mysqld --print-defaults
:获取默认设置
MariaDB配置
- 侦听 3306/tcp 端口可以在绑定有一个或全部接口IP上
- 关闭网络连接,只侦听本地客户端,所有和服务器的交互都通过一个 socket 文件实现,socket 的配置存放在
/var/lib/mysql/mysql.sock
,可在/etc/my.cnf
修改[root@node1 ~]# vim /etc/my.cnf [mysqld] skip-networking=1
网友评论