数据库MariaDB及MySQL

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等。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券