MySQL安装和基本使用

安装方式可以选择:

  • 源码编译:手动指定各种编译参数,生产推荐使用
  • 二进制:解压并简单配置即可使用

初始化脚本提高安全性

mysql_secure_installation

  • 设置数据库管理员root口令
  • 禁止root远程登录
  • 删除anonymous用户帐号
  • 删除test数据库

MySQL组成

1. 客户端程序

  • mysql:交互式CLI工具
  • mysqldump:备份工具,基于mysql协议向mysqld发起查询请求,并将查询得到的所有数据转换成insert等写操作语句保存在文本文件中
  • mysqladmin:基于mysql协议管理mysqld
  • mysqlimport:数据导入工具

MyISAM存储引擎管理工具:

  • myisamchk:检查MyISAM库
  • myisampack:打包MyISAM表,只读

msyql 运行命令类型

mysql客户端可以运行两种命令:客户端命令和服务端命令

  • 客户端命令:本地执行,每个命令都有完整形式和简写形式

    mysql> \h, help
    mysql> \u,use
    mysql> \s,status
    mysql> \!,system
  • 服务端命令:通过mysql协议发往服务器执行并取回结果,命令末尾都必须使用命令结束符号,默认为分号

    mysql>SELECT VERSION();

mysql 使用模式

mysql客户端有两种使用模式:交互模式和脚本模式

  • 交互模式

    [root@4710419222 test]# mysql -uUserName -pPassWord
    # 或使用 -e 参数
    [root@4710419222 test]# mysql -uUserName -pPassWord -e "sql command"
  • 脚本模式

    # 将sql语句写入文件
    [root@4710419222 test]# mysql -uUserName -pPassWord < test.sql
    # 在交互模式下,使用source也可以调用文件,执行文件中的sql语句
    [root@4710419222 test]# mysql -uUserName -pPassWord
    MySQL [(none)]> source ~/test/test.sql

mysql 命令

mysql [OPTIONS] [database]

常用 OPTIONS:

  • -A, –no-auto-rehash 禁止补全
  • -u, –user= 用户名,默认为root
  • -h, –host= 服务器主机,默认为localhost
  • -p, –passowrd= 用户密码,建议使用-p,默认为空密码
  • -P, –port= 服务器端口
  • -S, –socket= 指定连接socket文件路径
  • -D, –database= 指定默认数据库
  • -C, –compress 启用压缩
  • -e “SQL“ 执行SQL命令
  • -V, –version 显示版本
  • -v –verbose 显示详细信息
  • –print-defaults 获取程序默认使用的配置

2. 服务端程序

  • mysqld_safe:
  • mysqld:
  • mysqld_multi:多实例,示例:mysqld_multi –example

服务端配置

三种配置方式:1. 启动时配置命令行选项; 2. 配置文件;3. set 变量

配置文件:

  • /etc/my.cnf # 全局配置
  • /etc/mysql/my.cnf # 全局配置
  • ~/.my.cnf # 个人配置

配置文件格式:

[mysqld]
# parameter = value
# _ 和 - 相同
# ON,TRUE,1意义相同;0,OFF,FALSE意义相同,不区分大小写
[mysqld_safe]
[mysqld_multi]
[mysql]
[mysqldump]
[server]
[client]

服务器监听两种socket地址:

  • ip socket: 监听在tcp的3306端口,支持远程通信 ,侦听3306/tcp端口可以在绑定有一个或全部接口IP上

  • unix sock: 监听在sock文件上,仅支持本机通信, 如:/var/lib/mysql/mysql.sock)

    说明:host为localhost 时自动使用unix sock

3. 用户账号

mysql用户账号由两部分组成:username@host

  • host:支持通配符,% 匹配任意长度任意字符,_ 匹配任意单个字符

    172.16.0.0/255.255.0.0 等于 172.16.%.%