mysql 安装和基本使用
1、mysql 介绍
1.1 mysql 和 Mariadb
(1)官方地址
(2)官方文档
1.2 Mariadb 的特性
(1)插件式存储引擎:也称为 “表类型”,存储管理器有多种实现版本,功能和特性可能均略有差别;用户可根据需要灵活选择,mysql5.5.5 开始 innoDB 引擎是 mysql 默认引擎
MyISAM → Aria
InnoDB → XtraDB
(2)单进程,多线程
(3)诸多扩展和新特性
(4)提供了较多测试组件
(5)开源
2、mysql 安装
2.1 Mysql、Mariadb 安装方式
(1)源代码:编译安装
(2)二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
(3)rpm 包安装
CentOS安装光盘
2.2 rpm 包安装 Mysql
CentOS 7:
yum install mariadb-server -y
CentOS 6:
yum install mysql-server -y
提高安全性:
mysql_secure_installation # 执行脚本 Enter current password for root (enter for none): Set root password? [Y/n] # 设置数据库管理员root口令 Remove anonymous users? [Y/n] # 删除匿名anonymous用户帐号 Disallow root login remotely? [Y/n] # 禁止root远程登录 Remove test database and access to it? [Y/n] # 删除test数据库 Reload privilege tables now? [Y/n] # 重新加载特权表(使生效)
3、mysql 初使用
3.1 mysql 程序
(1)客户端程序:
mysql:交互式的CLI工具
mysqldump:备份工具,基于 mysql 协议向 mysqld 发起查询请求,并将查得的所有数据转换成 insert 等写操作语句保存文本文件中
mysqladmin:基于 mysql 协议管理 mysqld
mysqlimport:数据导入工具
(2)MyISAM 存储弓|擎的管理工具:
myisamchk:检查 MyISAM 库,打包 MyISAM 表,只读
(3)服务器端程序:
mysqld_safe
mysqld
mysqld_multi:多实例,示例:mysqld_multi --example
3.2 用户账号
mysql 用户账号由两部分组成:'USERNAME'@'HOST'
HOST 限制此用户可通过哪些远程主机连接 mysql 服务器,支持使用通配符:
% 匹配任意长度的任意字符
例:172.16.0.0/255.255.0.0 等价于 172.16.%.%
_匹配任意单个字符
3.3 mysql 基本使用
(1)mysql 使用模式:
交互式模式:
可运行命令有两类:
客户端命令:
\h,help
\u,use
\s,status
\!,system
服务器端命令:
SQL,需要语句结束符;
脚本模式:
1 mysql -uUSERNAME -pPASSWORD < /path/somefile.sql 2 mysql > source /path/from/somefile.sql
(2)mysql 客户端可用选项:
1 -A #禁止[Tab]补全 2 -u #用户名,默认为root 3 -h #服务器主机,默认为localhost 4 -p #用户密码,建议使用-p,默认为空密码 5 -P #服务器端口 6 -S #指定连接socket文件路径,默认路径:/var/lib/mysql/mysql.sock 7 -D #指定默认数据库 8 -C #启用压缩 9 -e #执行SQL命令 11 -V #显示版本 12 -v #显示详细信息 13 --print-defaults #获取程序默认使用的配置
服务器监听的两种 socket 地址:
ip socket:监听在 tcp 的 3306 端口,支持远程通信
unix sock:监听在 sock 文件上,仅支持本机通信
如: /var/lib/mysql/mysql.sock
说明:host 为 localhost,127.0.0.1 时自动使用 unix sock
(3)执行命令
运行 mysql 命令:默认空密码登录
[root@centos7 ~]# mysql ······
MariaDB [(none)]> use mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [mysql]> select user(); +----------------+ | user() | +----------------+ | root@localhost | +----------------+ 1 row in set (0.00 sec) MariaDB [mysql]> select user,host,password from user; +------+---------------------+----------+ | user | host | password | +------+---------------------+----------+ | root | localhost | | | root | centos7.localdomain | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | centos7.localdomain | | +------+---------------------+----------+ 6 rows in set (0.00 sec) MariaDB [mysql]> quit Bye [root@centos7 ~]#
登录系统:
[root@centos7 ~]# mysql -uroot -p
Enter password:
客户端命令:本地执行,每个命令都有完整形式和简写格式
MariaDB [(none)]> help
MariaDB [(none)]> \h
MariaDB [(none)]> status
MariaDB [(none)]> \s
服务端命令: 通过 mysql 协议发往服务器执行并取回结果,每个命令都必须命令结束符号; 默认为分号。
MariaDB [(none)]> select version();
4、mysql 配置
4.1 mysql 服务端配置
服务器端(mysqld):工作特性有多种配置方式
(1)命令行选项
(2)配置文件:类 ini 格式
集中式的配置,能够为 mysql 的各应用程序提供配置信息,格式:parameter = value
[mysqld] [mysqld_safe] [mysqld_multi] [mysql] [mysqldump] [server] [client]
说明:
_ 和 - 相同;
0、OFF、FALSE意义相同;
1、ON、TRUE意义相同。
4.2 配置文件
配置文件后面的配置文件覆盖前面的配置文件,顺序如下:
/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选项
获取可用参数列表:
mysqld --help -verbose mysqld --print-defaults # 获取默认设置
侦听 3306/tcp 端口可以在绑定有一个或全部接口 IP 上
vim /etc/my.cnf [mysqld] skip-networking=1 # 关闭网络连接,只侦听本地客户端,所有和服务器的交互都通过一个socket实现 , socket 的配置存放在/var/lib/mysql/mysql.sock可在/etc/my.cnf修改