Linux云计算运维-MySQL

Posted 游小刀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux云计算运维-MySQL相关的知识,希望对你有一定的参考价值。

0、建初心

优秀DBA的素质

1、人品,不做某些事情
2、严谨,运行命令前深思熟虑,三思而后行,即使是依据select
3、细心,严格按照步骤一步一步执行,减少出错
4、心态,遇到灾难,首先要稳住,不慌张,不要受到旁人的影响
5、熟悉操作系统,Linux系统的工具和命令
6、熟悉业务(开发),编程语言
7、熟悉行业
8、喜欢数据库

什么是数据?

数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。
什么是数据库管理系统?

将大量的数据规范的管理在一起的软件

数据库管理系统种类

关系型和非关系型

• 关系型数据库的特点
  – 二维表
  – 典型产品 Oracle传统企业, mysql是互联网企业
  – 数据存取是通过SQL
  – 最大特点,数据安全性方面强(ACID)
• NoSQL:非关系型数据库(Not only SQL)
  – 不是否定关系型数据库,做关系型数据库的的补充。
  – 想做老大,先学会做老二。

RDBMS与NoSQL对比
• web1.0时代
  企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要NoSQL。
• web2.0时代
  核心是企业提供平台,用户参与提供内容。这时关系型数据库无法满足需求了。
• 2003 NoSQL出现
  memcached诞生,关注的点是性能,而安全性关注比较低。随着安全性需求不断提升,所以有了redis。
• redis特点
  – 依然高性能该并发,
  – 数据持久化的功能
  – 支持多数据类型,主从复制和集群
  – 管理不再使用SQL了
• NoSQL特性总览
  – 不是否定关系型数据库,而是作为补充,现在也有部分替代的趋势。
  – 关注高性能,高并发,灵活性,忽略和上述无关的功能。
  – 现在也在提升安全性和使用功能。
  – 典型产品: Redis(持久化缓存,两个半天)、 MongoDB(最接近关系型数据的NoSQL)、 Memcached。
  – 管理不适用SQL管理,而是用一些特殊的 API 或 数据接口。
  • NoSQL的分类、特点、典型产品
  – 键值(KV)存储: Memcached、 Redis
  – 列存储(column-oriented): HBASE(新浪, 360)、 Cassandra(200台服务器集群)
  – 文档数据库(document-oriented): MongoDB(最接近关系型数据库的NoSQL)
  – 图形存储(Graph): Neo4j
常见数据库企业及其产品
Oracle数据库版本介绍
  – 7--8i--9i--10g11g--12c--18c(?)
Oracle的市场应用
  – 市场份额第一,趋势递减
  – 市场空间,传统企业
  – 传统企业也在互联网化
MySQL数据库版本介绍
  – 5.0--5.1--5.5--5.6--5.7--8.0
  5.0和5.1已经不能用了,5.6和5.7是现在的主流,8.0暂时还没有稳定的版本
MySQL的市场应用
  – 中、大型互联网公司
  – 市场空间:互联网领域第一
  – 趋势明显
同源产品: MariaDBperconaDB

其他公司产品介绍
微软: SQL Server
  – 微软和sysbase合作开发的产品,后来自己开发,windows平台
  – 3,4线小公司,传统行业在用
IBM DB2
  – 市场占有量小
  – 目前只有:国有银行(人行、中国银行、工商银行等)、中国移动应用。
PostgreSQL
MongoDB
Redis
后三者广泛应用在大型互联网公司。

MySQL发展史
1979年,报表工具Unireg出现。
1985 年,以瑞典David Axmark 为首,成立了一家公司(AB前身), IASM引擎出现。
1990年,提供SQL支持。
1999-2000年, MySQL AB公司成立,并公布源码,开源化。
20004BDB引擎出现,支持事务。
2008116MySQLSun公司收购。
20090420Oracle收购Sun公司, MySQL 转入Oracle 门下。

https://db-engines.com/en/ranking 点击查看各种数据度广度排名

1、MySQL的安装和配置

一、MySQL5.6.36安装前准备

(1)克隆一个模板机器(使用centos6),克隆完做快照
(2)IP 10.0.0.52 主机名db02
(3)iptables   selinux  关闭
(4)下载好5.6.36
官网下载 ftp://ftp.jaist.ac.jp/pub/mysql/Downloads/MySQL-5.6/ 下载完成最好比对一下md5
5)安装依赖包 yum install -y ncurses-devel libaio-devel (6)安装cmake yum install cmake –y (7)创建用户 useradd -s /sbin/nologin -M mysql id mysql 二、MySQL下载安装 (0)创建软件下载目录: mkdir -p /server/tools cd /server/tools/1)下载并上传到/server/tools
将下载的MySQL上传到服务器文件
社区版MySQL Community Server 5.6 5.6.3x 5.6.34 5.6.36 5.6.38 发布超过6-12余额的版本 5.7 5.7.17以后 (2)解压: cd /server/tools tar xf mysql-5.6.36.tar.gz (3)安装:注意修改自己下载的版本号,我这里是5.6.36,版本号输入错误会导致安装失败 cd mysql-5.6.36 cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.36 \\ -DMYSQL_DATADIR=/application/mysql-5.6.36/data \\ -DMYSQL_UNIX_ADDR=/application/mysql-5.6.36/tmp/mysql.sock \\ -DDEFAULT_CHARSET=utf8 \\ -DDEFAULT_COLLATION=utf8_general_ci \\ -DWITH_EXTRA_CHARSETS=all \\ -DWITH_INNOBASE_STORAGE_ENGINE=1 \\ -DWITH_FEDERATED_STORAGE_ENGINE=1 \\ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \\ -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \\ -DWITH_ZLIB=bundled \\ -DWITH_SSL=bundled \\ -DENABLED_LOCAL_INFILE=1 \\ -DWITH_EMBEDDED_SERVER=1 \\ -DENABLE_DOWNLOADS=1 \\ -DWITH_DEBUG=0
执行到这里也许会抱一个错误,导致安装失败
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.   Pleaet CMAKE_CXX_COMPILER to a valid compiler path or name.
这是因为系统缺少C++编译器
yum install gcc-c++ -y

 

make && make install

太慢了...
三、配置并启动 (1)制作软连接: ln -s /application/mysql-5.6.36/ /application/mysql (2)拷贝配置文件到/etc:覆盖原文件 cp support-files/my*.cnf /etc/my.cnf (3)初始化数据库:创建元数据,系统数据库 /application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/application/mysql/data --user=mysql (4)创建关键目录并设置权限: mkdir -p /application/mysql/tmp chown -R mysql.mysql /application/mysql/5)复制启动脚本到/etc/init.d/mysqld cp support-files/mysql.server /etc/init.d/mysqld (6)启动数据库
chkconfig mysqld on
/etc/init.d/mysqld start netstat -lntup|grep 3307)配置环境变量 echo \'PATH=/application/mysql/bin/:$PATH\' >>/etc/profile tail -1 /etc/profile source /etc/profile echo $PATH mysql select user,host,password from mysql.user;

排错:
1、输出
2、错误日志
tail -100 /application/mysql/data/db02.err
设置密码:
mysqladmin -u root password \'pizza123\'
mysql -uroot -pizza123
清理用户及无用数据库(基本优化)
select user,host from mysql.user;
drop user \'\'@\'db02\';
drop user \'\'@\'localhost\';
drop user \'root\'@\'db02\';
drop user \'root\'@\'::1\';
select user,host from mysql.user;
drop database test;
show databases;

 

作业

1、请列举你了解到的数据库典型产品

2、请说明企业中选择数据库版本的规则

3、请简述MySQL数据库支持的安装方式

4、编译安装自己的一套MySQL数据库

5、简述mysql_install_db命令的常用参数

6、简述5.7版本安装过程中与5.6的区别(自己扩展学习)

 

2、MySQL 体系结构

客户端与服务器端模型

1、cs之间通过TCP/IP链接

2、cs之间通过socket链接

所以,对应两种链接到数据库的方法

• 通过网络连接串

mysql -uroot -poldboy123 -h 10.0.0.200

• 通过套接字文件

mysql -uroot -poldboy123 -S /tmp/mysql.sock


• 思考: mysql - uroot - poldboy123 使用的是什么方式登录的?

MySQL体系结构-实例、连接层、SQL层详解

• MySQL在启动过程
  – 启动后台守护进程,并生成工作线程 
  – 预分配内存结构供MySQL处理数据使用 • 实例是什么?
  MySQL的后台进程
+线程+预分配的内存结构。

 

 

mysqld服务器程序的构成

show processlist;可以查看链接到MySQL的信息

SQL处理流程

在SQL层中,语句交给解析器,转换成执行计划,交给查询执行

当有多种执行计划时,交给优化器,确认执行计划,交给查询执行

得到的结果(获取数据的方式,即位置)交给存储引擎层,

1、接收到连接层送过过来的“SQL”
2、由专门的模块,会判断SQL语法、语义(SQL语句的类型:DDL、DCL、DML)
3、将不同类型的语句,送到专门的处理接口(解析器)
4、解析器,将SQL解析成执行计划
5、优化器,会选择“它”最优的执行计划交给执行器
6、执行器,执行 执行计划,得出如何去“磁盘”获取数据的方法
7、专门线程将获取数据的方法,送给下层(存储引擎层)继续处理。
8、验证授权,当前用户对 库或表对象有没有操作的权限。
9、查询高速缓存query_cache。
10、记录修改操作日志binlog。

 

 

存储引擎层

真正接触数据,和数据打交道的,接受SQL层执行计划的结果,去指定的位置取指定的数据,或者将数据存储在哪个位置

存储引擎是充当不同表类型的处理程序的服务器组件。 
• 存储引擎用于:
  – 存储数据
  – 检索数据
  – 通过索引查找数据
• 双层处理
  – 上层包括SQL解析器和优化器
  – 下层包含一组存储引擎
• SQL 层不依赖于存储引擎:
  – 引擎不影响SQL处理
  – 有一些例外,
依赖于存储引擎的功能
• 存储介质
• 事务功能
• 锁定
• 备份和恢复
• 优化
• 特殊功能:
  – 全文搜索
  – 引用完整性
  – 空间数据处理

 

简述MySQL的整个处理过程

首先,在磁盘中存储的数据肯定不是这个表的形式,在命令运行之后,经过一系列的操作,表格才展现在我们眼前
1、连接层
  通信协议---验证---授权---提供链接线程---接收SQL语句,并交给SQL层
2、SQL层
  见上面的流程,验证语法、语义(查询or插入)---query_cache---解析---优化---
3、存储引擎层
  去指定位置取指定的数据---返回给SQL层---处理---连接层交给用户展现

数据库的逻辑结构

列、数据行、表、库 就是这些抽象出来的结构

在物理层,是怎么存储到磁盘的呢?见下图,MySQL对磁盘的使用

注:我们只研究到文件系统层

程序文件随数据目录一起存储在服务器安装目录下。执行各种客户机程序、管理程序 和实用程序时将创建程序可执行文件和日志文件。
首要使用磁盘空间的是数据目录。
• 服务器日志文件和状态文件: 包含有关服务器处理的语句的信息。日志可用于进行故障排除、监视、复制和恢复。
• InnoDB 日志文件: (适用于所有数据库)驻留在数据目录级别。
• InnoDB 系统表空间:
  包含数据字典、撤消日志和缓冲区。
  每个数据库在数据目录下均具有单一目录(无论在数据库中创建何种类型的表)。
数据库目录存储以下内容:
  - 数据文件: 特定于存储引擎的数据文件。这些文件也可能包含元数据或索引信息,具体取决于所使用的存储引擎。
  - 格式文件 (.frm): 包含每个表和/或视图结构的说明,位于相应的数据库目录中。
  - 触发器: 与某个表关联并在该表发生特定事件时激活的命名数据库对象。
数据目录的位置取决于配置、操作系统、安装包和分发。
典型位置是 /var/lib/mysql。 MySQL在磁盘上存储系统数据库 (mysql)。
mysql 包含诸如用户、特权、插件、 帮助列表、事件、时区实现和存储例程之类的信息。

页(默认是16k):是mysql数据库存储的最小单元
区:连续的多个页组成,是一系列练习的数据行
段:一个表(分区表)就是一个段,包含了多个区

3、MySQL的基本管理

• MySQL的连接管理

mysql命令

-u   用户名
-p   密码

例子: 
mysql -uroot -pizza123

-h ip  
例子:
mysql -uroot -pizza123 -h 10.0.0.52

-P 3308
例子:
mysql -uroot -pizza123 -h 10.0.0.52 -P 3308

-S /tmp/mysql.sock  套接字目录
例子:
mysql -uroot -pizza123 -S /application/mysql/tmp/mysql.sock

-e "show variables like \'server_id\';"  免交互式执行SQL命令,直接获得结果
例子:
mysql -uroot -pizza123  -e "show variables like \'server_id\';"

mysqladmin 
mysqladmin -uroot -p password pizza123

• MySQL用户管理及权限基本管理

用户权限由用户名+主机范围构成

对比一下Linux用户和MySQL用户

user:表示使用哪个用户登陆

host:表示从哪些地址访问这个数据库

• 用户的作用: 
  – 1、用户登录
  – 2、用于管理数据库及数据
• 权限: 针对不同用户设置不同对象管理能力
  – 对数据库的读、写等操作
  – (insert update、select等)
• 角色:
  – 数据库定义好的一组权限的定义
  – (all privileges、replication slave等)
• 权限范围:
  – 全库级别: *.*
  – 单库级别:oldboy.*
  – 单表级别:oldboy.t1

 

超级管理(管理)用户:root ,当前如果要进行授权操作只能用root进行

也不用再去创建了,当然也可以根据不同的地址,主机域去设置不同的密码和操作

mysqladmin  -uroot -p password  pizza123  这条命令,执行的是root@localhost,即只在本地生效的权限范围

普通用户(开发)的权限包括:select update delete insert drop  ...用的比较多的

用户操作命令

• 查看当前用户: 
  select user,host from mysql.user;
• 创建用户
  CREATE USER \'用户\'@\'主机\' IDENTIFIED BY \'密码\';
  create user \'pizza\'@\'localhost\' identified by \'pizza123\'; 
#只有连接权限 企业里创建用户一般是授权一个内网网段登录,最常见的网段写法有两种。
  方法1:172.16.1.%(%为通配符,匹配所有内容)。
  方法2:172.16.1.0/255.255.255.0,但是不能使用172.16.1.0/24,是个小遗憾。
# 远程登录,带参数-h
  mysql> create user web01@\'10.0.0.%\' identified by \'123\';
  [root@web01 mysql-5.6.43]# mysql -uweb01 -p123 -h10.0.0.7
  登陆后的普通用户,权限很低

标准的建用户方法:
  create user \'web\'@\'172.16.1.%\' identified by \'web123\';
• 查看用户对应的权限
  show grants for oldboy@localhost\\G
• 删除用户
  drop user
\'user\'@\'主机域\' 或者 drop user root@\'127.0.0.1\';
  用户优化:只保留 有密码和有用户名的
  | root | 127.0.0.1 |
  | root | localhost |
  特殊的删除方法:
  mysql> delete from mysql.user where user=\'pizza\' and host=\'localhost\';
  Query OK, 1 row affected (0.00 sec) mysql> flush privileges;

• 给用户授权
  create user \'pizza\'@\'localhost\' identified by \'pizza123\';  
  select user,host from mysql.user;
  GRANT ALL ON *.* TO \'pizza\'@\'localhost\';
  SHOW GRANTS FOR \'pizza\'@\'localhost\'\\G
• 创建用户的同时授权
  grant all on *.* to pizza@\'172.16.1.%\' identified by \'pizzal123\';
  flush privileges; #<==可以不用。
  create user \'pizza\'@\'localhost\' identified by \'pizza123\';
  GRANT ALL ON *.* TO \'pizza\'@\'localhost\';
• 授权和root一样的权限
  grant all on *.* to system@\'localhost\' identified by \'pizzal123\' with grant option; • 收回权限
  REVOKE INSERT ON
*.* FROM pizza@localhost;
• 可以授权的用户权限
  INSERT,SELECT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE,
  REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES,
  LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW,
  SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER,
  CREATE TABLESPACE
• 开发用户 拥有的基本权限
  INSERT,SELECT, UPDATE, DELETE, CREATE, DROP
  grant INSERT,SELECT, UPDATE, DELETE, CREATE, DROP on testdb.* to web01@‘10.0.0.%’;
• 工作博客授权:
  grant select,insert,update,delete,create,drop on blog.* to \'blog\'@\'172.16.1.%\' identified by \'blog123\';
  revoke create,drop on blog.* from \'blog\'@\'172.16.1.%\';
最多:select,insert,update,delete • 注意: 思考一下如果在oldboy.*,设置了select,insert,update,delete 在oldboy.t1设置了select,
  那么用户在t1表的最终权限应该是什么。 回收权限的时候又该怎么做?
实验后的结论:
  如果对于某个用户在不同数据库级别都设置了权限,最终权限相叠加,以加起来的最大权限为准。
建议:不要多范围授权

 

 

• MySQL的启动和关闭(启动脚本介绍)

 数据库的启动流程介绍

mysql最终启动的是mysqld进程,通过他提供的启动脚本,不能直接启动mysqld

数据库的关闭

• mysqladmin shutdown 
• servive mysqld stop
kill -9 ? 慎用
• 第三种为利用系统进程管理命令关闭MySQL。
  – kill pid #<==这里的pid为数据库服务对应的进程号。
  – killall mysqld #<==这里的mysqld是数据库服务对应的进程名字。
  – pkill mysqld #<==这里的mysqld是数据库服务对应的进程名字。 可通过如下地址查看生产高并发环境野蛮粗鲁杀死数据库导致故障企业案例:
  http:
//oldboy.blog.51cto.com/2561410/1431161
  http://oldboy.blog.51cto.com/2561410/1431172

 

MySQL启动报错

停数据库----去mysql/data目录下--随便改一个文件(目录下的一个文件权限改成root)---启动数据库

报错

 

常规的报错代码整理 http://oldboy.blog.51cto.com/2561410/1728380

• MySQL数据库配置文件详解

启动之前都做了什么?

1、程序在哪

2、启动后去哪里找数据

3、启动之后分配多大内存

...

n、还有许许多多的问题

MySQL的初始化配置文件

预编译配置项,即在使用cmake时,硬编码设置的参数,指定了如安装目录、数据目录、sock目录

命令行设置,在命令行上配置参数

/application/mysql/bin/mysqld_safe 用来启动mysql,因为设置过环境变量,可以直接运行

mysqld_safe   --socket=/tmp/mysql.sock  --port=3307 &

链接,不能用老的方式了

mysql  -uroot  -ppizza -S  /tmp/mysql.sock

初始化配置文件,/etc/my.cof

标签的种类和影响的程序

选项文件示例

[mysqld]
basedir=/application/mysql
datadir=/application/mysql/data
socket=/application/mysql/tmp/mysql.sock
port=3306
server_id=10
log-error=/var/log/mysql.log
log-bin=/application/mysql/data/mysql-bin
binlog_format=row
skip_name_resolve

[mysql]
socket=/application/mysql/tmp/mysql.sock


 

  1. 数据库的启动(客户端)
    1. 启动文件的启动选项包括
      1. 共享内存  
      2. 日志记录
      3. 系统变量
      4. 默认存储引擎
      5. 命名管道链接
  2. 数据库的链接(服务器)

优先级

mysql 启动参数设置
1、预编译时候设置参数,参数会硬编码到程序中
2、命令行方式设定启动参数
3、初始化的配置文件
2>3>1

 

MySQL为我们配置了很多配置文件,配置文件读取顺序如下

自定义配置文件位置,系统自己是找不到的

vim /tmp/aa.txt    
[mysqld]
basedir=/application/mysql
datadir=/application/mysql/data
port=3307
socket=/tmp/mysql.sock

 

使用自定义的配置文件
/etc/init.d/mysqld stop
mysqld_safe --defaults-file=/tmp/aa.txt &

• 多实例简介及配置

 一个MySQL实例就是一个进程,多个线程,一定量预分配的内存空间

多实例就是,多个这样的实例管理不同的数据,和一些日志

思路

1、启动多个mysqld进程
2、规划多套数据
3、规划多个端口
4、规划多套日志路径

 

多实例配置

1、创建多套目录

mkdir -p /data/330{7,8,9}

2、准备多套配置文件

vim /data/3307/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3307
server-id=3307
port=3307
log-bin=/data/3307/mysql-bin
socket=/data/3307/mysql.sock
log-error=/data/3307/mysql.log

vim /data/3308/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3308
server-id=3308
port=3308
log-bin=/data/3308/mysql-bin
socket=/data/3308/mysql.sock
log-error=/data/3308/mysql.log

vim /data/3309/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3309
server-id=3309
port=3309
log-bin=/data/3309/mysql-bin
socket=/data/3309/mysql.sock
log-error=/data/3309/mysql.log


3、初始化多套数据

/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/data/3307 --user=mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/data/3308 --user=mysql
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql/ --datadir=/data/3309 --user=mysql


4、启动多个实例

mysqld_safe --defaults-file=/data/3307/my.cnf &
mysqld_safe --defaults-file=/data/3308/my.cnf &
mysqld_safe --defaults-file=/data/3309/my.cnf &

5、查看启动端口
netstat -lnp |grep 330


6、分别连接测试

mysql -S /data/3307/mysql.sock -e "show variables like \'server_id\';"
mysql -S /data/3308/mysql.sock -e "show variables like \'server_id\';"
mysql -S /data/3309/mysql.sock -e "show variables like \'server_id\';"

 

作业

1、列出MySQL在Linux下的两种连接方式

2、简述mysql修改密码方法

3、简述实例的构成

4、结合MySQL体系结构,说明一条SQL语句的执行过程

5、mysql的默认日志文件在什么位置

6、简述MySQL的启动方式

7、简述MySQL配置文件读取顺序

8、配置MySQL多实例,端口分别为3307 3308 3309

9、请介绍mysql连接命令的常用参数,并说明功能

10、请简述MySQL的逻辑构成

 

• 数据库对象管理——SQL(库、表、行记录)

 

4、MySQL客户端工具及SQL入门

• MySQL 客户端命令

mysql命令

• mysql: 
  – 用于数据库连接管理
    – 前面章节已经使用过(略。)
    – 命令接口自带命令
      • 1、\\h 或 help 或 ?
      • 2、\\G 键值对的方式排列
      • 3、\\T 或 tee 记录到日志
      • 4、\\c 或 CTRL+c 结束上一条命令
      • 5、\\s 或 status 查看数据库基本状态信息
      • 6、\\. 或 source 调用外部SQL脚本
      • 7、\\u 或use

  – 将 用户SQL 语句发送到服务器,管理数据库
    结构化查询语言,MySQL接口程序只负责接受SQL,传送给SQL层
    – DDL:数据库(对象)定义语言
    – DCL:数据控制语言(grant、revoke)
    – DML:数据(行)操作语言(update、delete、insert)
    - DQL:数据查询语言(show、select)
• mysqladmin:
  – 命令行管理工具
• mysqldump:
  – 备份数据库和表的内容

source命令使用

• 在 mysql 中处理输入文件: 
• 如果这些文件包含 SQL 语句,则称为:
  – “脚本文件”
  – “批处理文件”
• 使用 SOURCE 命令:
  mysql> SOURCE /data/mysql/world.sql
  或者使用非交互式:
  mysql</data/mysql/world.sql

 

mysqladmin命令

• DBA的命令行客户端工具 
• 多项功能:
  – “强制回应 (Ping)”服务器。
  – 关闭服务器。
  – 创建和删除数据库。
  – 显示服务器和版本信息。
  – 显示或重置服务器状态变量。
  – 设置口令
  – 重新刷新授权表。
  – 刷新日志文件和高速缓存
  – 启动和停止复制
  – 显示客户机信息 • 命令帮助及基本语法:
  mysqladmin
--help
  mysqladmin -u<name> -p<password> commands • 例子:
  mysqladmin version
  mysqladmin status
  mysqladmin
ping
  mysqladmin processlist
  mysqladmin shutdown
  mysqladmin variables
  …

 

mysqldump命令简介

• 数据库备份工具。 
• 命令帮助及基本语法:
mysqldump –help
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]

 

数据库对象:库、表

库的名字,库的基本属性 create  database blog;

• MySQL 获取帮助的方法

help命令的使用

• 查看完整的 SQL 类别列表: 
mysql> HELP CONTENTS
...
Account Management
Administration
Compound Statements
Data Definition
Data Manipulation Data Types
...
• 有关特定 SQL 类别或语句的帮助:
mysql> HELP Data Manipulation
mysql> HELP JOIN
• 有关与状态相关的 SQL 语句的帮助:
mysql> HELP STATUS

 

• DDL操作简介

DDL操作:
    对象:
        库:
        定义什么?
        1、库名字
        2、库的基本属性
        如何定义?
        create database lufei;
        create schema  lf;
        show databases;
        create database llf CHARACTER SET utf8 ;
        show create database llf;
        drop database llf;
        help  create database;
        字符集:  CHARACTER SET [=] charset_name
        排序规则:COLLATE [=] collation_name
        
        改库的字符集:
        ALTER DATABASE [db_name] CHARACTER SET  charset_name COLLATE collation_name
        

以上是关于Linux云计算运维-MySQL的主要内容,如果未能解决你的问题,请参考以下文章

Linux云计算就业后是做啥类型的工作

Linux云计算-使用 MyCat 实现 MySQL 主从读写分离

Linux云计算-使用 MyCat 实现 MySQL 主从读写分离

不花一分钱学云计算!达内全套Linux云计算+运维正课视频免费领!附赠海量工具,限额200份!

linux运维linux运维会被淘汰吗?会消失在云计算中吗?

零基础转行Linux云计算运维工程师获得20万年薪的超级学习技巧