Mysql8本地安装

官网: https://www.mysql.com/
yum安装下载:https://dev.mysql.com/downloads/repo/yum/
二进制安装下载:https://downloads.mysql.com/archives/community/

安装包下载

  • yum安装下载
    打开网址(https://dev.mysql.com/downloads/repo/yum/)
    2.
    在这里插入图片描述
  • 二进制安装下载
    打开网址(https://downloads.mysql.com/archives/community/)
    在这里插入图片描述

安装

系统版本: CentOS Linux release 7.4.1708 (Core)

前置准备

  1. 卸载系统自带mariadb
rpm -qa|grep mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps

在这里插入图片描述

Yum安装

  1. 将下载好的rpm文件上传到服务器
  2. 安装yum源
rpm -ivh mysql84-community-release-el7-1.noarch.rpm

在这里插入图片描述
3.安装mysql服务

yum -y install mysql-community-server

4.启动mysql服务,并设置自启动

systemctl start mysqld
systemctl enable mysqld

5.查看mysql默认密码

cat /var/log/mysqld.log |grep password

在这里插入图片描述

6.修改默认root密码

mysql -uroot -p          #执行后输入刚才日志中的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Pwd@123.com';    #修改root密码
flush privileges;

在这里插入图片描述

二进制安装

1.将下载好的安装包上传到服务器
2.安装依赖

yum install -y libaio libaio-devel openssl

3.解压安装包,创建数据目录,创建服务用户

tar xvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.28-linux-glibc2.12-x86_64  /usr/local/mysql
mkdir /data/mysql8.0.28/{data,binlog} /var/log/mysql
groupadd -r mysql&&useradd -M -r -s  /sbin/nologin -g mysql mysql

/usr/local/ 可替换为任意部署位置
4.设置mysql命令环境变量

vim /etc/profile
# 文件末尾添加如下内容
PATH=$PATH:/usr/local/mysql/bin    #/usr/local/mysql/bin需为实际mysql的bin目录绝对路径
# 刷新环境变量
source /etc/profile

在这里插入图片描述
5.编写mysql配置文件,目录授权

chown -R mysql:mysql /usr/local/mysql /data/mysql8.0.28 /var/log/mysql
vim /etc/my.cnf
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql8.0.28/data
pid-file=/usr/local/mysql/mysqld.pid
socket=/tmp/mysql.sock
max_connections=15000
log-error=/var/log/mysql/mysqld.err
character-set-server=utf8mb4
server-id=1
#read_only=1
# 二进制日志设置
log-bin=/data/mysql8.0.28/binlog/mysql-bin
# 二进制保存周期(s)
binlog_expire_logs_seconds=172800
# 中继日志设置
relay-log=relay-bin
relay_log_purge=0
relay-log-index=slave1-relay-bin.index
# 开启慢sql日志
slow_query_log=1
# 慢sql存储位置
slow_query_log_file=/var/log/mysql/mysql-slow_query.log
# 慢sql超过1s记录
long_query_time=1
sql_mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
#设置默认存储引擎为MYISAM(不设置为INNODB)
#default-storage-engine=MYISAM
#设置默认时区为上海
default-time_zone='+8:00'
#设置默认密码加密方式
default_authentication_plugin=mysql_native_password
#设置日志时间为系统时间(默认为UTC)
log_timestamps=system
[mysql]
default-character-set=utf8mb4
[client]
port=3306
socket=/tmp/mysql.sock

6.初始化数据库

mysqld --initialize  --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql8.0.28/data/

7.设置systemctl,开机自启,启动服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add /etc/init.d/mysqld
chkconfig mysqld on
systemctl daemon-reload
systemctl start mysqld
systemctl enable mysqld

8.修改初始root密码

cat /var/log/mysql/mysqld.err |grep password
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Pwd@123.com';
flush privileges;

在这里插入图片描述

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 1.3. MySQL AB概述 1.4. MySQL数据库管理系统概述 1.4.1. MySQL的历史 1.4.2. MySQL的的主要特性 1.4.3. MySQL稳定性 1.4.4. MySQL表最大能达到多少 1.4.5. 2000年兼容性 1.5. MaxDB数据库管理系统概述 1.5.1. 什么是MaxDB? 1.5.2. MaxDB的历史 1.5.3. MaxDB的特性 1.5.4. 许可和支持 1.5.5. MaxDB和MySQL之间的特性差异 1.5.6. MaxDB和MySQL之间的协同性 1.5.7. 与MaxDB有关的链接 1.6. MySQL发展大事记 1.6.1. MySQL 5.1的新特性 1.7. MySQL信息源 1.7.1. MySQL邮件列表 1.7.2. IRC(在线聊天系统)上的MySQL社区支持 1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. MySQL支持的操作系统 2.1.2. 选择要安装MySQL分发版 2.1.3. 怎样获得MySQL 2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.5. 安装布局 2.2. 使用二进制分发版的标准MySQL安装 2.3. 在Windows上安装MySQL 2.3.1. Windows系统要求 2.3.2. 选择安装软件包 2.3.3. 用自动安装安装MySQL 2.3.4. 使用MySQL安装向导 2.3.5. 使用配置向导 2.3.6. 通过非安装Zip文件安装MySQL 2.3.7. 提取安装档案文件 2.3.8. 创建选项文件 2.3.9. 选择MySQL服务器类型 2.3.10. 首次启动服务器 2.3.11. 从Windows命令行启动MySQL 2.3.12. 以Windows服务方式启动MySQL 2.3.13. 测试MySQL安装 2.3.14. 在Windows环境下对MySQL安装的故障诊断与排除 2.3.15. 在Windows下升级MySQL 2.3.16. Windows版MySQL同Unix版MySQL对比 2.4. 在Linux下安装MySQL 2.5.在Mac OS X中安装MySQL 2.6. 在NetWare中安装MySQL 2.7. 在其它类Unix系统中安装MySQL 2.8. 使用源码分发版安装MySQL 2.8.1. 源码安装概述 2.8.2. 典型配置选项 2.8.3. 从开发源码树安装 2.8.4. 处理MySQL编译问题 2.8.5. MIT-pthreads注意事项 2.8.6. 在Windows下从源码安装MySQL 2.8.7. 在Windows下编译MySQL客户端 2.9. 安装后的设置和测试 2.9.1. Windows下安装后的过程 2.9.2. Unix下安装后的过程 2.9.3. 使初始MySQL账户安全 2.10. 升级MySQL 2.10.1. 从5.0版升级 2.10.2. 升级授权表 2.10.3. 将MySQL数据库拷贝到另一台机器 2.11. 降级MySQL 2.12. 具体操作系统相关的注意事项 2.12.1. Linux注意事项 2.12.2. Mac OS X注意事项 2.12.3. Solaris注意事项 2.12.4. BSD注意事项 2.12.5. 其它Unix注意事项 2.12.6. OS/2注意事项 2.13. Perl安装注意事项 2.13.1. 在Unix中安装Perl 2.13.2. 在Windows下安装ActiveState Perl 2.13.3. 使用Perl DBI/DBD接口的问题 3. 教程 3.1. 连接与断开服务器 3.2. 输入查询 3.3. 创建并使用数据库 3.3.1. 创建并选择数据库 3.3.2. 创建表 3.3.3. 将数据装入表中 3.3.4. 从表检索信息 3.4. 获得数据库和表的信息 3.5. 在批处理模式下使用mysql 3.6. 常用查询的例子 3.6.1. 列的最大值 3.6.2. 拥有某个列的最大值的行 3.6.3. 列的最大值:按组 3.6.4. 拥有某个字段的组间最大值的行 3.6.5. 使用用户变量 3.6.6. 使用外键 3.6.7. 根据两个键搜索 3.6.8. 根据天计算访问量 3.6.9. 使用AUTO_INCREMENT 3.7. 孪生项目的查询 3.7.1. 查找所有未分发的孪生项 3.7.2. 显示孪生对状态的表 3.8. 与Apache一起使用MySQL 4. MySQL程序概述 4.1. MySQL程序概述 4.2. 调用MySQL程序 4.3. 指定程序选项 4.3.1. 在命令行上使用选项 4.3.2. 使用选项文件 4.3.3. 用环境变量指定选项 4.3.4. 使用选项设置程序变量 5. 数据库管理 5.1. MySQL服务器和服务器启动脚本 5.1.1. 服务器端脚本和实用工具概述 5.1.2. mysqld-max扩展MySQL服务器 5.1.3. mysqld_safe:MySQL服务器启动脚本 5.1.4. mysql.server:MySQL服务器启动脚本 5.1.5. mysqld_multi:管理多个MySQL服务器的程序 5.2. mysqlmanager:MySQL实例管理器 5.2.1. 用MySQL实例管理器启动MySQL服务器 5.2.2. 连接到MySQL实例管理器并创建用户账户 5.2.3. MySQL实例管理器命令行选项 5.2.4. MySQL实例管理器配置文件 5.2.5. MySQL实例管理器识别的命令 5.3. mysqld:MySQL服务器 5.3.1. mysqld命令行选项 5.3.2. SQL服务器模式 5.3.3. 服务器系统变量 5.3.4. 服务器状态变量 5.4. mysql_fix_privilege_tables:升级MySQL系统表 5.5. MySQL服务器关机进程 5.6. 一般安全问题 5.6.1. 通用安全指南 5.6.2. 使MySQL在攻击者面前保持安全 5.6.3. Mysqld安全相关启动选项 5.6.4. LOAD DATA LOCAL安全问题 5.7. MySQL访问权限系统 5.7.1. 权限系统的作用 5.7.2. 权限系统工作原理 5.7.3. MySQL提供的权限 5.7.4. 与MySQL服务器连接 5.7.5. 访问控制, 阶段1:连接核实 5.7.6. 访问控制, 阶段2:请求核实 5.7.7. 权限更改何时生效 5.7.8. 拒绝访问错误的原因 5.7.9. MySQL 4.1中的密码哈希处理 5.8. MySQL用户账户管理 5.8.1. MySQL用户名和密码 5.8.2. 向MySQL增加新用户账户 5.8.3. 从MySQL删除用户账户 5.8.4. 限制账户资源 5.8.5. 设置账户密码 5.8.6. 使你的密码安全 5.8.7. 使用安全连接 5.9. 备份与恢复 5.9.1. 数据库备份 5.9.2. 示例用备份与恢复策略 5.9.3. 自动恢复 5.9.4. 表维护和崩溃恢复 5.9.5. myisamchk:MyISAM表维护实用工具 5.9.6. 建立表维护计划 5.9.7. 获取关于表的信息 5.10. MySQL本地化和国际应用 5.10.1. 数据和排序用字符集 5.10.2. 设置错误消息语言 5.10.3. 添加新的字符集 5.10.4. 字符定义数组 5.10.5. 字符串比较支持 5.10.6. 多字节字符支持 5.10.7. 字符集问题 5.10.8. MySQL服务器时区支持 5.11. MySQL日志文件 5.11.1. 错误日志 5.11.2. 通用查询日志 5.11.3. 二进制日志 5.11.4. 慢速查询日志 5.11.5. 日志文件维护 5.12. 在同一台机器上运行多个MySQL服务器 5.12.1. 在Windows下运行多个服务器 5.12.2. 在Unix中运行多个服务器 5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的复制 6.1. 复制介绍 6.2. 复制实施概述 6.3. 复制实施细节 6.3.1. 复制主线程状态 6.3.2. 复制从I/O线程状态 6.3.3. 复制从SQL线程状态 6.3.4. 复制传递和状态文件 6.4. 如何设置复制 6.5. 不同MySQL版本之间的复制兼容性 6.6. 升级复制设置 6.6.1. 将复制升级到5.0版 6.7. 复制特性和已知问题 6.8. 复制启动选项 6.9. 复制FAQ 6.10. 复制故障诊断与排除 6.11. 通报复制缺陷 6.12. 多服务器复制中的Auto-Increment 7. 优化 7.1. 优化概述 7.1.1. MySQL设计局限与折衷 7.1.2. 为可移植性设计应用程序 7.1.3. 我们已将MySQL用在何处? 7.1.4. MySQL基准套件 7.1.5. 使用自己的基准 7.2. 优化SELECT语句和其它查询 7.2.1. EXPLAIN语法(获取SELECT相关信息) 7.2.2. 估计查询性能 7.2.3. SELECT查询的速度 7.2.4. MySQL怎样优化WHERE子句 7.2.5. 范围优化 7.2.6. 索引合并优化 7.2.7. MySQL如何优化IS NULL 7.2.8. MySQL如何优化DISTINCT 7.2.9. MySQL如何优化LEFT JOIN和RIGHT JOIN 7.2.10. MySQL如何优化嵌套Join 7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. 如何避免表扫描 7.2.16. INSERT语句的速度 7.2.17. UPDATE语句的速度 7.2.18. DELETE语句的速度 7.2.19. 其它优化技巧 7.3. 锁定事宜 7.3.1. 锁定方法 7.3.2. 表锁定事宜 7.4. 优化数据库结构 7.4.1. 设计选择 7.4.2. 使你的数据尽可能小 7.4.3. 列索引 7.4.4. 多列索引 7.4.5. MySQL如何使用索引 7.4.6. MyISAM键高速缓冲 7.4.7. MyISAM索引统计集合 7.4.8. MySQL如何计算打开的表 7.4.9. MySQL如何打开和关闭表 7.4.10. 在同一个数据库中创建多个表的缺陷 7.5. 优化MySQL服务器 7.5.1. 系统因素和启动参数的调节 7.5.2. 调节服务器参数 7.5.3. 控制查询优化器的性能 7.5.4. 编译和链接怎样影响MySQL的速度 7.5.5. MySQL如何使用内存 7.5.6. MySQL如何使用DNS 7.6. 磁盘事宜 7.6.1. 使用符号链接 8. 客户端和实用工具程序 8.1. 客户端脚本和实用工具概述 8.2. myisampack:生成压缩、只读MyISAM表 8.3. mysqlMySQL命令行工具 8.3.1. 选项 8.3.2. mysql命令 8.3.3. 怎样从文本文件执行SQL语句 8.3.4. mysql技巧 8.4. mysqlaccess:用于检查访问权限的客户端 8.5. mysqladmin:用于管理MySQL服务器的客户端 8.6. mysqlbinlog:用于处理二进制日志文件的实用工具 8.7. mysqlcheck:表维护和维修程序 8.8. mysqldump:数据库备份程序 8.9. mysqlhotcopy:数据库备份程序 8.10. mysqlimport:数据导入程序 8.11. mysqlshow-显示数据库、表和列信息 8.12. myisamlog:显示MyISAM日志文件内容 8.13. perror:解释错误代码 8.14. replace:字符串替换实用工具 8.15. mysql_zap:杀死符合某一模式的进程 9. 语言结构 9.1. 文字值 9.1.1. 字符串 9.1.2. 数值 9.1.3. 十六进制值 9.1.4. 布尔值 9.1.5. 位字段值 9.1.6. NULL值 9.2. 数据库、表、索引、列和别名 9.2.1. 识别符限制条件 9.2.2. 识别符大小写敏感性 9.3. 用户变量 9.4. 系统变量 9.4.1. 结构式系统变量 9.5. 注释语法 9.6. MySQL中保留字的处理 10. 字符集支持 10.1. 常规字符集和校对 10.2. MySQL中的字符集和校对
目 录<br><br>第一章MYSQL入门与初步 1<br>1.1 MYSQL简介 2<br>1.1.1 MySQL是什么? 2<br>1.1.2 我需要MySQL吗? 3<br>1.1.3 我需要付钱吗? 4<br>1.1.4 如何得到MySQL? 4<br>1.1.5总结 5<br>1.2 关系数据库管理系统 5<br>1.2.1 关系数据库系统 6<br>1.2.2 数据库系统的发展 7<br>1.2.3 与数据库系统通讯 8<br>1.2.4 MySQL的体系结构 8<br>1.2.5总结 8<br>1.3 MYSQL使用的SQL语言 9<br>1.3.1 表、列和数据类型 9<br>1.3.2函数 9<br>1.3.3 SQL的语句 9<br>1.3.4总结 10<br>1.4 MYSQL数据处理 10<br>1.4.1 MySQL的数据 10<br>1.4.1.1、字符串值 10<br>1.4.1.2数字值 11<br>1.4.1.3十六进制值 12<br>1.4.1.4日期和时间值 12<br>1.4.1.4 NULL值 12<br>1.4.2列类型概述 12<br>1.4.3 数字列类型 14<br>1.4.3.1整数类型 15<br>1.4.3.2浮点数类型 16<br>1.4.4 日期和时间类型 18<br>1.4.4.1 Y2K问题和日期类型 18<br>1.4.4.2 DATETIME,DATE和TIMESTAMP类型 18<br>1.4.4.3 TIME类型 19<br>1.4.4.4 YEAR类型 20<br>1.4.5 字符串类型 20<br>1.4.5.1 CHAR和VARCHAR类型 21<br>1.4.5.2 BLOB和TEXT类型 23<br>1.4.5.3 ENUM和SET类型 24<br>1.4.6总结 26<br>第二章 MySQL安装 27<br>2.1 MYSQL系统的安装布局 28<br>2.1.1 二进制安装 28<br>2.1.2 RPM安装 28<br>2.1.3 源代码安装 28<br>2.1.4总结 29<br>2.2 安装MYSQL系统的分发 29<br>2.2.1 在Windows下的安装一个二进制分装 29<br>2.2.2 在Windows NT/2000下安装成系统服务 29<br>2.2.3 在Linux下安装一个RPM分发 31<br>2.2.4 在Linux下安装二进制分发 31<br>2.2.5 在Linux下安装源代码分发 32<br>2.2.6 总结 32<br>2.3 安装后期的的设置与测试 33<br>2.3.1建立启动MySQL的帐户 33<br>2.3.2 初始化授权表 33<br>2.3.3 测试服务器是否工作 34<br>2.3.4 自动运行和停止MySQL 36<br>2.3.5 更改root用户的密码 38<br>2.3.6 修改选项文件 38<br>2.3.7总结 41<br>2.4 系统的升级 41<br>2.4.1 备份数据库与其他配置文件 41<br>2.4.2 重新安装二进制分发 41<br>2.4.3重新安装源代码分发 41<br>2.4.4 升级一个RPM分发 42<br>2.4.5 检查数据库是否工作及完整 42<br>2.4.6总结 42<br>2.5在同一台机器上运行多个MYSQL服务器 42<br>2.5.1使用重新编译的方法 42<br>2.5.2使用指定服务器参数的方法 43<br>2.5.3有关选项文件的问题 44<br>2.5.4 总结 44<br>第三章 数据库的基本操作 46<br>3.1 MYSQL的启动与终止 47<br>3.1.1 直接运行守护程序 47<br>3.1.2 使用脚本mysql.server启动关闭数据库 48<br>3.1.3 使用mysqladmin实用程序关闭、重启数据库 49<br>3.1.4 启动或停止NT平台上的系统服务 50<br>3.1.5 使用选项文件提供服务器的参数 51<br>3.1.6 总结 51<br>3.2 MYSQL与客户机的连接 51<br>3.2.1建立和中止与服务器的连接 52<br>3.2.2利用选项文件简化连接 53<br>3.2.3 利用 mysql 的输入行编辑器 54<br>3.2.4 批处理模式连接 55<br>3.2.5 总结 56<br>3.3 有关数据库的操作 56<br>3.3.1 用SHOW显示已有的数据库 56<br>3.3.2 用Create Dabase 创建数据库 57<br>3.3.3 用DROP DATABASE删除数据库 57<br>3.3.4 使用mysqladmin工具创建和删除 58<br>3.3.5 直接在数据库目录中创建或删除 58<br>3.3.6 用USE选用数据库 58<br>3.3.7 总结 58<br>3.4 有关数据表的操作 59<br>3.4.1 用SHOW/ DESCRIBE语句显示数据表的信息 59<br>3.4.2 使用mysqlshow 工具得到信息 60<br>3.4.3 用CREATE TABLE 语句创建数据表 60<br>3.4.4利用 SELECT 的结果创建表 62<br>3.4.5 用ALTER TABLE语句修改表的结构 63<br>3.4.6 用DROP TABLE 语句删除数据表 64<br>3.4.7 总结 64<br>3.5 向数据表插入行记录 64<br>3.5.1 使用INSERT语句插入新数据 64<br>3.5.2 使用INSERT…SELECT语句插入从其他表选择的行 65<br>3.5.3 使用replace、replace…select语句插入 66<br>3.5.4 使用LOAD语句批量录入数据 66<br>3.5.5 总结 68<br>3.6 查询数据表中的记录 69<br>3.6.1 普通查询 69<br>3.6.2 条件查询 71<br>3.6.3 查询排序 73<br>3.6.4 查询分组与行计数 75<br>3.6.5 查询多个表 77<br>3.3.6总结 78<br>3.7 修改、删除数据记录 79<br>3.7.1 用update修改记录 79<br>3.7.2 用delete删除记录 79<br>3.7.3 总结 79<br>第四章 MYSQL高级特性 81<br>4.1 集合函数 82<br>4.1.1 行列计数 82<br>4.1.2统计字段值的数目 82<br>4.1.3 计算字段的平均值 83<br>4.1.4 计算字段值的和 84<br>4.1.5 计算字段值的极值 84<br>4.1.6 总结 86<br>4.2 操作日期和时间 86<br>4.2.1 返回当前日期和时间 86<br>4.2.2 自动记录数据的改变时间 88<br>4.2.3 返回日期和时间范围 90<br>4.2.5 比较日期和时间 92<br>4.3 字符串模式匹配 93<br>4.3.1 标准的SQL模式匹配 93<br>4.3.2 扩展正则表达式模式匹配 94<br>4.3.3 总结 96<br>4.4 深入SELECT的查询功能 96<br>4.4.1 列和表的别名 96<br>4.4.1.1列的别名 96<br>4.4.1.2 在子句中使用列的别名 98<br>4.4.1.3表的别名 98<br>4.4.2 取出互不相同的记录 99<br>4.4.3 NULL值的问题 100<br>4.4.4 大小写敏感性 102<br>4.4.5 检索语句与多个表的连接 102<br>4.4.5.1 全连接 103<br>4.4.5.2 左连接 105<br>4.4.6 总结 108<br>4.5 索引属性 108<br>4.5.1 索引的特点 108<br>4.5.2 用Alter Table语句创建与删除索引 109<br>4.5.3 用CREATE\DROP INDEX创建索引 110<br>4.5.4 在创建表时指定索引 111<br>4.5.5 总结 113<br>第五章 数据库的备份与恢复 114<br>5.1 数据库目录 115<br>5.1.1 数据目录的位置 115<br>5.1.2 数据库的表示法 116<br>5.1.3 数据库表的表示法 117<br>5.1.4 MySQL的状态文件 118<br>5.1.5 总结 120<br>5.2 重定位数据库目录的内容 120<br>5.2.3 重定位方法 120<br>5.2.1 重定位数据目录 121<br>5.2.2 重定位数据库 121<br>5.2.3 重定位数据库表 122<br>5.2.4 重定位状态文件 122<br>5.2.5 总结 123<br>5.3 备份和恢复数据表的方法 123<br>5.3.1 使用SQL语句备份和恢复 123<br>5.3.2使用mysqlimport恢复数据 125<br>5.3.3 使用mysqldump备份数据 126<br>5.3.4 用直接拷贝的方法备份恢复 129<br>5.3.5 总结 129<br>5.4 使用更新日志文件 130<br>5.4.1 启用日志 130<br>5.4.2 重写日志 130<br>5.4.3 恢复日志内容 130<br>5.4.4 总结 131<br>5.5 使用MYSQL内建复制功能 131<br>5.5.1 配置主服务器 131<br>5.5.2 配置从服务器 132<br>5.5.3 创建相互的主从关系 133<br>5.5.4 总结 133<br>5.5 总结:备份恢复数据的一般步骤 133<br>第六章 数据库的维护与修复 136<br>6.1 数据库表的检查、修复与优化 137<br>6.1.1 数据库表的维护工具 137<br>6.1.2 检查数据库表 138<br>6.1.3 修复数据库表 139<br>6.1.4优化数据库表 140<br>6.1.5指定维护过程中使用的内存 141<br>6.1.6总结 141<br>6.2 避免与 MYSQL 服务器交互作用 142<br>6.2.1锁定表的的方法 142<br>6.2.2 检查表的锁定协议 143<br>6.2.3 修复表的锁定协议 143<br>6.2.4 总结 144<br>6.3日志文件维护 144<br>6.3.1如何使用新的更新日志 144<br>6.3.2如何使用新的常规日志 145<br>6.3.3 总结 145<br>6.4 建立日常维护规范 145<br>6.4.1 建立一个数据库表维护规范 145<br>6.4.2 创建一个适用于定期维护的脚本 145<br>6.4.3 在unix中用cron定期检查表 146<br>6.3.4 在系统启动期间检查表 147<br>6.3.5 总结 148<br>第七章 数据库安全 149<br>7.1 MYSQL的权限系统 150<br>7.1.1授权表的结构 150<br>7.1.1.1授权表user、db和host的结构和作用 150<br>7.1.1.2授权表tables_priv和columns_priv的结构和作用 151<br>7.1.2用户的权限 152<br>7.1.2.1数据库和表的权限 152<br>7.1.2.2管理权限 153<br>7.1.3授权表列的内容 153<br>7.1.3.1作用域列内容 153<br>7.1.3.2授权表User、Db和Host的权限列的内容 155<br>7.1.3.3授权表tables_priv和columns_priv的权限列的内容 155<br>7.1.4权限系统工作原理 155<br>7.1.4.1权限系统工作的一般过程 155<br>7.1.4.2存取控制, 阶段1:连接证实 156<br>7.1.4.3存取控制,阶段2:请求证实 159<br>7.1.5 总结 161<br>7.2 设置用户与并授权 162<br>7.2.1使用SHOW GRANTS语句显示用户的授权 162<br>7.2.2 使用GRANT语句创建用户并授权 162<br>7.2.2.1 GRANT语句的语法 162<br>7.2.2.2创建用户并授权的实例 164<br>7.2.3 直接修改授权表创建用户并授权 164<br>7.2.4 总结 165<br>7.3 撤销用户与授权 165<br>7.3.1 使用REVOKE语句撤销授权 165<br>7.3.2 直接修改授权表撤销用户或授权 166<br>7.3.3 总结 167<br>7.4 设置密码 167<br>7.4.1 使用myadmin实用程序 167<br>7.4.2使用语句SET PASSWORD 168<br>7.4.3 直接修改授权表 168<br>7.4.4 重新设置一个遗忘的root口令 168<br>7.4.5 总结 169<br>7.5 权限修改何时生效 169<br>7.5.1 服务器重新启动的情况 170<br>7.5.2 被服务器立即应用的情况 170<br>7.5.3 直接修改授权表的情况 170<br>7.5.4 对现有客户连接的影响情况 170<br>7.5.5 总结 170<br>7.6 授权原则 170<br>7.6.1 只有root用户拥有授权表的改写权 170<br>7.6.2 关于用户、口令及主机的设置 171<br>7.6.3 授予用户合适的权限 171<br>7.6.4 MySQL权限系统无法完成的任务 173<br>7.6.5 总结 173<br>7.7 MYSQL的其它安全问题 173<br>7.7.1 不在客户机的命令行上提供密码 173<br>1可以在命令行上提供密码 173<br>7.7.2 使用SSH加密客户机连接 174<br>7.7.3不要使用Unix的root用户运行MySQL守护进程 174<br>7.7.4数据库目录的安全 174<br>7.7.4.1可能的安全漏洞 174<br>7.7.4.2在Unix设置合适的数据库目录权限 175<br>7.7.4.3在NT系统中设置合适的数据库目录权限 175<br>7.7.5影响安全的mysqld选项 175<br>7.7.6 总结 176<br>第八章 数据库优化 177<br>8.1 索引的使用 178<br>8.1.1索引对单个表查询的影响 178<br>8.1.2索引对多个表查询的影响 180<br>8.1.3多列索引对查询的影响 181<br>8.1.4索引的作用 182<br>8.1.5 索引的弊端 182<br>8.1.6 选择索引的准则 183<br>8.1.7 总结 184<br>8.2 数据类型的问题 184<br>8.2.1 有助于效率的类型选择 184<br>8.2.2 有关BLOB和TEXT类型 185<br>8.2.3 使用ANALYSE过程检查表列 186<br>8.2.3 总结 187<br>8.3 SQL查询的优化 187<br>8.3.1 使用EXPLAIN语句检查SQL语句 187<br>8.3.2 SELECT 查询的速度 188<br>8.3.2.1 MySQL怎样优化WHERE子句 188<br>8.3.2.2 MySQL怎样优化LEFT JOIN 190<br>8.3.2.3 MySQL怎样优化LIMIT 190<br>8.3.4 记录转载和修改的速度 191<br>8.3.4.1 INSERT查询的速度 191<br>8.3.4.2 UPDATE查询的速度 193<br>8.3.4.3 DELETE查询的速度 193<br>8.3.4索引对有效装载数据的影响 193<br>8.3.5 总结 194<br>8.4 数据库表的处理 194<br>8.4.1 选择一种表类型 194<br>8.4.1.1 静态(定长)表的特点 195<br>8.4.1.2 动态表的特点 196<br>8.4.1.3 压缩表的特点 196<br>8.4.1.4 内存表的特点 197<br>8.4.2 数据库表的数量的问题 197<br>8.4.3 数据库表级锁定的问题 198<br>1、对此一个主要的问题如下: 198<br>2、INSERT DELAYED 在客户机方的作用 199<br>8.4.4 对表进行优化 200<br>8.4.5 总结 201<br>8.5 服务器级优化 201<br>8.5.1 磁盘问题 201<br>8.5.2硬件问题 202<br>8.5.3 服务器参数的选择 202<br>8.5.4编译和链接怎样影响MySQL的速度 203<br>8.5.5 总结 203<br>思考题答案 206<br>附录一 MYSQL 语言参考 217<br>1.1 数据类型参考:怎么写字符串和数字 217<br>1.1.1 字符串 217<br>1.1.2 数字 219<br>1.1.3 十六进制值 219<br>1.1.4 NULL值 219<br>1.1.5 数据库、表、索引、列和别名的命名 220<br>1.1.5.1 名字的大小写敏感性 221<br>1.2 用户变量 222<br>1.3 列类型 222<br>1.3.1 列类型存储需求 225<br>数字类型 226<br>日期和时间类型 226<br>串类型 226<br>1.3.2 数字类型 227<br>1.3.3 日期和时间类型 229<br>1.3.3.1 Y2K问题和日期类型 230<br>1.3.3.2 DATETIME, DATE和TIMESTAMP类型 230<br>1.3.3.3 TIME类型 233<br>1.3.3.4 YEAR类型 234<br>1.3.4 字符串类型 234<br>1.3.4.1 CHAR和VARCHAR类型 234<br>1.3.4.2 BLOB和TEXT类型 235<br>1.3.4.3 ENUM类型 236<br>1.3.4.4 SET类型 237<br>1.3.5 为列选择正确的类型 238<br>1.3.6 列索引 238<br>1.3.7 多列索引 239<br>1.3.8 使用来自其他数据库引擎的列类型 239<br>1.4 用在SELECT和WHERE子句中的函数 240<br>1.4.1 分组函数 240<br>1.4.2 常用的算术操作 241<br>1.4.3 位函数 242<br>1.4.4 逻辑运算 242<br>1.4.5 比较运算符 243<br>1.4.6 字符串比较函数 246<br>1.4.7 类型转换运算符 248<br>1.4.8 控制流函数 248<br>1.4.9 数学函数 249<br>1.4.10 字符串函数 255<br>1.4.11 日期和时间函数 262<br>1.4.12 其他函数 269<br>1.4.13 与GROUP BY子句一起使用的函数 272<br>1.5 CREATE DATABASE句法 274<br>1.6 DROP DATABASE句法 274<br>1.7 CREATE TABLE句法 274<br>1.1.1 隐含的列说明改变 279<br>1.8 ALTER TABLE句法 280<br>1.9 OPTIMIZE TABLE句法 282<br>1.10 DROP TABLE句法 283<br>1.11 DELETE句法 283<br>1.12 SELECT句法 284<br>1.13 JOIN句法 286<br>1.14 INSERT句法 287<br>1.15 REPLACE句法 290<br>1.16 LOAD DATA INFILE句法 291<br>1.17 UPDATE句法 296<br>1.18 USE句法 297<br>1.20 KILL句法 298<br>1.22 EXPLAIN句法(得到关于SELECT的信息) 303<br>1.23 DESCRIBE句法 (得到列的信息) 307<br>1.24 LOCK TABLES/UNLOCK TABLES句法 308<br>1.25 SET OPTION句法 309<br>1.26 GRANT和REVOKE句法 310<br>1.27 CREATE INDEX句法 313<br>1.29 注释句法 314<br>1.30 CREATE FUNCTION/DROP FUNCTION句法 315<br> <br>2.1 各种MYSQL程序概述 318<br>myisamchk 318<br>make_binary_release 318<br>msql2mysql 318<br>mysql 318<br>mysqlaccess 319<br>mysqladmin 319<br>mysqlbug 319<br>mysqld 319<br>mysqldump 319<br>mysqlimport 319<br>mysqlshow 319<br>mysql_install_db 319<br>replace 319<br>safe_mysqld 319<br>2.2 MYSQLADMIN 319<br>2.3 MYSQLDUMP 320<br>2.4 MYSQLIMPORT 323<br>2.5 MYISAMPACK 324<br>2.6 MYISAMCHK 332

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值