MySQL安装和基本操作

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安装方式:

  1. 源代码:编译安装
  2. 二进制格式的程序包:展开至特定路径,并经过简单的配置后即可使用
  3. 程序包管理器管理的程序包

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使用模式:

交互式模式:
  • 可运行命令有两类:
    1. 客户端命令:
      \h,help
      \u,use
      \s,status
      \!,system
    2. 服务器端命令:
      SQL,需要语句结束符 " ; "
脚本模式:
  1. ~]# mysql -uUSERNAME -pPASSWORD < /path/somefile.sql
  2. 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):

工作特性有多种配置方式

  1. 命令行选项:
  2. 配置文件:类ini格式
    集中式的配置,能够为mysql的各应用程序提供配置信息
    [mysqld]
    [mysqld_safe]
    [mysqld_multi]
    [mysql]
    [mysqldump]
    [server]
    [client]
    
    格式:parameter = value
    说明:
      _ 和 - 相同
      0,OFF,FALSE 意义相同;1,ON,TRUE 意义相同

配置文件

后面覆盖前面的配置文件,顺序如下:

  1. /etc/my.cnf:Global选项
  2. /etc/mysql/my.cnf:Global全局选项
  3. SYSCONFDIR/my.cnf:Global选项
  4. $MYSQL_HOME/my.cnf:Server-specific选项
  5. --defaults-extra-file=path:命令行参数选项
  6. ~/.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  
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容