导航:首页 > 程序命令 > mysqldba命令

mysqldba命令

发布时间:2022-06-12 18:58:58

‘壹’ 高级mysql dba必备哪些技能

高级操作
1.Mysql 主从同步配置
2.Mysql 双master 配置
3.Mysql 双master+丛库+keepalived 配置高可用数据库
客户端
作为DBA,一定不要用各种GUI工具,mysql自带命令行client才是你的最佳武器
可选项
1.mysql 分区配置,因为限制太多,实际中分表都是程序做
2.高性能 mysql
a).drizzle
b).MariaDB
c).handlersocket

基本知识
1.mysql的编译安装
2.mysql 第3方存储引擎安装配置方法
3.mysql 主流存储引擎(MyISAM/innodb/MEMORY)的特点
4.字符串编码知识
5.MySQL用户账户管理
6.数据备份/数据入导出
7.mysql 支持的基本数据类型
8.库/表/字段/索引 的创建/修改/删除
9.基本sql 语法:select/insert/update/delete,掌握最基本的语法即可,什么inner join,left join的了解就行 mysql的应用场景大多都是高并发访问/业务逻辑简单,join/子查询/视图/触发器 基本上不用
10.sql 聚集查询:group by/having
11.如何用explain 分析优化查询
12.常见 sql 优化技巧
a).select xx from yyy limited ...,
b).order by random
c).select count(*) from
13.各种show xxx 指令,大概有20种,每个都尝试用一次
14.show VARIABLES; 大概有240项,逐条看懂,可以打印出来贴墙上

‘贰’ 如何在windows里面安装MySQL

Windows上安装MySQL


MySQL针对不同的用户提供了2中不同的版本:

MySQL Community Server:社区版。由MySQL开源社区开发者和爱好者提供技术支持,对开发者开放源代码并提供免费下载。

MySQL Enterprise Server:企业版。包括最全面的高级功能和管理工具,不过对用户收费。

下面讲到的MySQL安装都是以免费开源的社区版为基础。打开MySQL数据库官网的下载地址http://dev.mysql.com/downloads/mysql,上面提供了两种安装文件,一种是直接安装的MSI安装文件,另一种是需要解压并配置的压缩包文件。我这里用的是5.7.10版本的安装。

用MSI安装包安装

根据自己的操作系统下载对应的32位或64位安装包。按如下步骤操作:
第一步:安装许可
双击安装文件,在如下图所示界面中勾选“I accept the license terms”,点击“next”。

经过以上步骤后MySQL服务器安装完成。

‘叁’ 15个 MySQL 基础面试题,DBA 们准备好了吗

问题1:你如何确定 MySQL 是否处于运行状态?
答案: 在Debian 上运行命令 service mysql status,然后看输出即可。
在 RedHat 或者 centos 上运行命令 service mysqld status,然后看看输出即可。

问题2:如何开启或停止 MySQL 服务?
答案:运行命令 service mysqld start 开启服务;
运行命令 service mysqld stop 停止服务。

问题3:如何通过 Shell 登入 MySQL?
答案:运行命令 mysql -u用户名 -p登陆密码

问题4:如何列出所有数据库?
答案:运行命令 show databases;

问题5: 如何切换到某个数据库并在上面工作?
答案:(1)运行命令 use database_name;
(2)进入名为 database_name 的数据库。

问题6:如何列出某个数据库内所有表?
答案:在当前数据库运行命令 show tables;

问题7:如何获取表内所有 Field 对象的名称和类型?
答案:运行命令 describe 表名;
简写为desc 表名;

问题8:如何删除表?
答案:运行命令 drop table 表名;

问题9:如何删除数据库?
答案:运行命令 drop database 数据库名;

问题10:如何查看表内所有数据?
答案:运行命令 select * from 表名;

问题11:如何从表(比如 oc_users )中获取一个 field 对象(比如 uid)的所有数据?
答案:运行命令 select uid from oc_users;

问题12:假设你有一个名为 ‘xyz’ 的表,它存在多个字段,如 ‘createtime’和 ‘engine’,
名为 engine 的字段由 ‘Memoty’ 和 ‘MyIsam’ 两种数值组成。
如何只列出 ‘createtime’ 和 ‘engine’ 这两列,并且 engine 的值为 ‘MyIsam’?
答案:运行命令 select create_time, engine from xyz where engine = “MyIsam” ;

问题13:如何列出表 ‘xrt’ 内 name 域值为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?
答案:运行命令 select * from xrt where name = “tecmint” and web_address = “tecmint.com” ;

问题14:如何列出表 ‘xrt’ 内 name 域值不为 ‘tecmint’,web_address 域值为 ‘tecmint.com’ 的所有数据?
答案:运行命令 select * from xrt where name != “tecmint” and web_address = “tecmint.com”;

问题15:如何知道表内行数?
答案:运行命令 select count(*) from 表名;

‘肆’ dba的问题

学习dba不是一朝一夕的事情,我个人觉得:
以oracle+unix的模式来学习能让你更好理解
那么首先你需要学习一些基础:
1、sql语言,这是基础中的基础
2、unix基本操作,安装、配置unix、oracle
3、oracle存储结构,oracle文件结构,oracle基础配置
4、sql语句以及执行分析、数据库调优等
5、适当的编程语言以及操作系统知识是需要的
6、坚持不懈

你可以到itpub上找到各个阶段的非常翔实的教程以及资料和faq

‘伍’ mysql 创建完索引之后 ,查询反而变慢了,这是为什么

我们先来看第一个阶段,MySQL慢的诊断思路,一般我们会从三个方向来做:

‘陆’ 求助,MySql 5.6.17 授权用户问题

慢慢看吧
mysql中可以给你一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为:
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to common_user@’%’
grant insert on testdb.* to common_user@’%’
grant update on testdb.* to common_user@’%’
grant delete on testdb.* to common_user@’%’
或者,用一条 mysql 命令来替代:
grant select, insert, update, delete on testdb.* to common_user@’%’

二、grant 数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。
grant 创建、修改、删除 mysql 数据表结构权限。
grant create on testdb.* to developer@’192.168.0.%’;
grant alter on testdb.* to developer@’192.168.0.%’;
grant drop on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 外键权限。
grant references on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 临时表权限。
grant create temporary tables on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 索引权限。
grant index on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 视图、查看视图源代码 权限。
grant create view on testdb.* to developer@’192.168.0.%’;
grant show view on testdb.* to developer@’192.168.0.%’;
grant 操作 mysql 存储过程、函数 权限。
grant create routine on testdb.* to developer@’192.168.0.%’; - now, can show procere status
grant alter routine on testdb.* to developer@’192.168.0.%’; - now, you can drop a procere
grant execute on testdb.* to developer@’192.168.0.%’;

三、grant 普通 dba 管理某个 mysql 数据库的权限。
grant all privileges on testdb to dba@’localhost’
其中,关键字 “privileges” 可以省略。

四、grant 高级 dba 管理 mysql 中所有数据库的权限。
grant all on *.* to dba@’localhost’

五、mysql grant 权限,分别可以作用在多个层次上。
1. grant 作用在整个 mysql 服务器上:
grant select on *.* to dba@localhost; - dba 可以查询 mysql 中所有数据库中的表。
grant all on *.* to dba@localhost; - dba 可以管理 mysql 中的所有数据库
2. grant 作用在单个数据库上:
grant select on testdb.* to dba@localhost; - dba 可以查询 testdb 中的表。
3. grant 作用在单个数据表上:
grant select, insert, update, delete on testdb.orders to dba@localhost;
4. grant 作用在表中的列上:
grant select(id, se, rank) on testdb.apache_log to dba@localhost;
5. grant 作用在存储过程、函数上:
grant execute on procere testdb.pr_add to ’dba’@’localhost’
grant execute on function testdb.fn_add to ’dba’@’localhost’

六、查看 mysql 用户权限
查看当前用户(自己)权限:
show grants;
查看其他 mysql 用户权限:
show grants for dba@localhost;

七、撤销已经赋予给 mysql 用户权限的权限。
revoke 跟 grant 的语法差不多,只需要把关键字 “to” 换成 “from” 即可:
grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;

八、mysql grant、revoke 用户权限注意事项
1. grant, revoke 用户权限后,该用户只有重新连接 mysql 数据库,权限才能生效。
2. 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“
grant select on testdb.* to dba@localhost with grant option;
这个特性一般用不到。实际中,数据库权限最好由 dba 来统一管理。

注意:修改完权限以后 一定要刷新服务,或者重启服务

‘柒’ 请教大家,MySQL安装版与解压版的区别

本文针对mysql-noinstall版本,也就是解压缩版的安装配置应用做了个总结,这些操作都是平时很常用的操作。文章中不对mysql的可执行文件安装版做介绍了,可执行安装版有很多的弊端,我也不一一说了。总之,我喜欢绿色环保的,包括eclipse、tomcat、jboss、apache也是,即使操作系统重装了,这些软件也不需要重装,可谓一劳永逸!

环境:
Windows 2000/XP/2003
mysql-noinstall-5.0.37-win32.zip

一、下载MySQL

http://www.mysql.com/downloads

二、安装过程

1、解压缩mysql-noinstall-5.0.37-win32.zip到一个目录,加入解压缩到E:\myserver目录。

2、编写mysql的运行配置文件my.ini
my.ini
-----------------------------
[WinMySQLAdmin]
# 指定mysql服务启动启动的文件
Server=E:\\myserver\\mysql-5.0.37-win32\\bin\\mysqld-nt.exe

[mysqld]
# 设置mysql的安装目录
basedir=E:\\myserver\\mysql-5.0.37-win32
# 设置mysql数据库的数据的存放目录,必须是data,或者是\\xxx\data
datadir=E:\\myserver\\mysql-5.0.37-win32\\data
# 设置mysql服务器的字符集
default-character-set=gbk

[client]
# 设置mysql客户端的字符集
default-character-set=gbk
-----------------------------

3、安装mysql服务
从MS-DOS窗口进入目录E:\myserver\mysql-5.0.37-win32\bin,运行如下命令:
mysqld --install mysql5 --defaults-file= E:\myserver\mysql-5.0.37-win32\my.ini

4、启动mysql数据库
还在上面的命令窗口里面,输入命令:net start mysql5
这样就启动了mysql服务。

5、(本地)登录mysql数据库
还在上面的命令窗口里面,输入命令:mysql -u root -p
回车后提示输入密码。
mysql解压缩版初次安装管理员root的密码为空,因此直接再回车一次就登入mysql数据库了。

如果你不是初次登录mysql,你还拥有网络地址的用户,那么你可以用如下命令登录到mysql服务器,这个mysql服务器也许在远方,也许在本地。这种登录方式叫“远程登录”,命令如下:
mysql -h 192.168.3.143 -u root -p
mysql -h 192.168.3.143 -u root -pleimin

-h是指定登录ip,-u指定用户,-p指定密码,-p后如果什么都不写,那么接下来会提示输入密码,-p后也可以直接写上密码,这样就不再需要输入密码了。

6、操作数据库和表
登录mysql数据库后,就可以执行指定操作数据库,用命令:use 数据库名
指定了操作的数据库对象后,就可以操作数据库中的表了,操作方法当然是SQL命令了,呵呵。

7、更改mysql数据库管理员root的密码
mysql数据库中默认有个mysql数据库,这个是mysql系统的数据库,用来保存数据库用户、权限等等很多信息。要更改密码,就要操作mysql数据库的user表。

现在mysql的root用户密码还为空,很不安全的,假设要更改密码为“leimin”。

还在上面的命令窗口里面,执行如下命令:
use mysql;
grant all on *.* to root@'%' identified by 'leimin' with grant option;
commit;

这段命令的含义是,添加一个root用户,拥有所有的权限,密码为“leimin”,并且这个用户不但可以本地访问,也可以通过网络访问。强调这个原因是mysql系统自带的的那个root用户只能从本地访问,它@字符后面的标识是localhost。具体可以查看mysql数据的uer表看看,这样以来,就有两个root用户了,一个是系统原来的,一个新建的,为了管理的方便,就将mysql自带root删除,保留刚创建的这个root用户,原因是这个用户可以通过网络访问mysql。

然后,删除用户的命令:
user mysql;
delete from user where user='root' and host='localhost';
commit;

其实上面的方法是授权命令,在授权的同时创建了数据库用户。mysql也有单独的修改用户密码的方法,下面看看如何操作。
首先,先建立一个用户lavasoft,密码为:123456
grant all on *.* to lavasoft@'localhost' identified by '123456' with grant option;

接下来就修改这个用户的密码为:leimin
update user set password = password('leimin') where user = 'lavasoft' and host='localhost';
flush privileges;

说明一点,最好用grant的方式创建mysql用户,尤其对mysql DBA来说,创建用户的同时要指定用户权限,养成好习惯很重要的。

这个修改方法实际上用的是mysql函数来进行的,还有更多的方法,我就不一一介绍了。
还要注意一点就是在修改密码等操作的时候,mysql不允许为表指定别名,但是初次在外却没有这个限制。

8、创建数据库
实际上mysql数据库中除了mysql数据库外,还有一个空的数据库test,供用户测试使用。
现在继续创建一个数据库testdb,并执行一系列sql语句看看mysql数据库的基本操作。

创建数据库testdb:
create database testdb;

预防性创建数据库:
create database if not testdb

创建表:
use testdb;
create table table1(
username varchar(12),
password varchar(20));

预防性创建表aaa:
create table if not exists aaa(ss varchar(20));

查看表结构:
describe table1;

插入数据到表table1:
insert into table1(username,password) values
('leimin','lavasoft'),
('hellokitty','hahhahah');
commit;

查询表table1:
select * from table1;

更改数据:

update table1 set password='hehe' where username='hellokitty';
commit;

删除数据:
delete from table1 where username='hellokitty';
commit;

给表添加一列:
alter table table1 add column(
sex varchar(2) comment '性别',
age date not null comment '年龄'
);
commit;

从查询创建一个表table1:
create table tmp as
select * from table1;

删除表table1:
drop table if exists table1;
drop table if exists tmp;

9、备份数据库testdb
mysqlmp -h 192.168.3.143 -u root -pleimin -x --default-character-set=gbk >C:\testdb.sql

10、删除数据库testdb
drop database testdb;

11、恢复testdb数据库
首先先建立testdb数据库,然后用下面命令进行本地恢复:
mysql -u root -pleimin testdb <C:\testdb.sql

12、删除mysql服务
假如你厌倦mysql了,你需要卸载,那么你只需要这么做

停止mysql服务
net stop mysql5

删除mysql服务
sc delete mysql5

然后删除msyql的安装文件夹,不留任何痕迹。

‘捌’ MySQL:grant 语法详解(MySQL5.X)

本文实例,运行于MySQL5.0
及以上版本。
MySQL
赋予用户权限命令的简单格式可概括为:
grant
权限on
数据库对象to
用户
一、grant
普通数据用户,查询、插入、更新、删除数据库中所有表数据的权利。
grant
select
on
testdb.*
to
common_user@'%'
grant
insert
on
testdb.*
to
common_user@'%'
grant
update
on
testdb.*
to
common_user@'%'
grant
delete
on
testdb.*
to
common_user@'%'
或者,用一条MySQL
命令来替代:
grant
select,
insert,
update,
delete
on
testdb.*
to
common_user@'%'
二、grant
数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。
grant
创建、修改、删除MySQL
数据表结构权限。
grant
create
on
testdb.*
to
developer@'192.168.0.%';
grant
alter
on
testdb.*
to
developer@'192.168.0.%';
grant
drop
on
testdb.*
to
developer@'192.168.0.%';
grant
操作MySQL
外键权限。
grant
references
on
testdb.*
to
developer@'192.168.0.%';
grant
操作MySQL
临时表权限。
grant
create
temporary
tables
on
testdb.*
to
developer@'192.168.0.%';
grant
操作MySQL
索引权限。
grant
index
on
testdb.*
to
developer@'192.168.0.%';
grant
操作MySQL
视图、查看视图源代码权限。
grant
create
view
on
testdb.*
to
developer@'192.168.0.%';
grant
show
view
on
testdb.*
to
developer@'192.168.0.%';
grant
操作MySQL
存储过程、函数权限。
grant
create
routine
on
testdb.*
to
developer@'192.168.0.%';
--
now,
can
show
procere
status
grant
alter
routine
on
testdb.*
to
developer@'192.168.0.%';
--
now,
you
can
drop
a
procere
grant
execute
on
testdb.*
to
developer@'192.168.0.%';
三、grant
普通DBA
管理某个MySQL
数据库的权限。
grant
all
privileges
on
testdb
to
dba@'localhost'
其中,关键字“privileges”
可以省略。
四、grant
高级DBA
管理MySQL
中所有数据库的权限。
grant
all
on
*.*
to
dba@'localhost'
五、MySQLgrant
权限,分别可以作用在多个层次上。
1.
grant
作用在整个MySQL
服务器上:
grant
select
on
*.*
to
dba@localhost;
--
dba
可以查询MySQL
中所有数据库中的表。
grant
all
on
*.*
to
dba@localhost;
--
dba
可以管理MySQL
中的所有数据库
2.
grant
作用在单个数据库上:
grant
select
on
testdb.*
to
dba@localhost;
--
dba
可以查询testdb
中的表。
3.
grant
作用在单个数据表上:
grant
select,
insert,
update,
delete
on
testdb.orders
to
dba@localhost;
4.
grant
作用在表中的列上:
grant
select(id,
se,
rank)
on
testdb.apache_log
to
dba@localhost;
5.
grant
作用在存储过程、函数上:
grant
execute
on
procere
testdb.pr_add
to
'dba'@'localhost'
grant
execute
on
function
testdb.fn_add
to
'dba'@'localhost'
六、查看MySQL
用户权限
查看当前用户(自己)权限:
show
grants;
查看其他MySQL
用户权限:
show
grants
for
dba@localhost;
七、撤销已经赋予给MySQL
用户权限的权限。
revoke
跟grant
的语法差不多,只需要把关键字“to”
换成“from”
即可:
grant
all
on
*.*
to
dba@localhost;
revoke
all
on
*.*
from
dba@localhost;
八、MySQLgrant、revoke
用户权限注意事项
1.
grant,
revoke
用户权限后,该用户只有重新连接MySQL
数据库,权限才能生效。
2.
如果想让授权的用户,也可以将这些权限grant
给其他用户,需要选项“grant
option“
grant
select
on
testdb.*
to
dba@localhost
with
grant
option;

这个特性一般用不到。实际中,数据库权限最好由DBA
来统一管理。

‘玖’ 成为互联网公司mysql DBA需要掌握哪些技能

高级操作
1.Mysql 主从同步配置
2.Mysql 双master 配置
3.Mysql 双master+丛库+keepalived 配置高可用数据库
客户端
作为DBA,一定不要用各种GUI工具,mysql自带命令行client才是你的最佳武器
可选项
1.mysql 分区配置,因为限制太多,实际中分表都是程序做
2.高性能 mysql
a).drizzle
b).MariaDB
c).handlersocket

基本知识
1.mysql的编译安装
2.mysql 第3方存储引擎安装配置方法
3.mysql 主流存储引擎(MyISAM/innodb/MEMORY)的特点
4.字符串编码知识
5.MySQL用户账户管理
6.数据备份/数据入导出
7.mysql 支持的基本数据类型
8.库/表/字段/索引 的创建/修改/删除
9.基本sql 语法:select/insert/update/delete,掌握最基本的语法即可,什么inner join,left join的了解就行 mysql的应用场景大多都是高并发访问/业务逻辑简单,join/子查询/视图/触发器 基本上不用

‘拾’ 如何利用mysql系统命令直接查询某字段出现在所在的表方法

MYSQL没有类似于MSSQLSERVER的sysobjects或者Oracle的dba_tab_comments这样的表,但MYSQL可以用SHOW命令查询数据库和表、字段、索引等信息:

一些SHOW语句提供额外的字符集信息。这些语句包括SHOW CHARACTER SET、SHOW COLLATION、SHOW CREATE DATABASE、SHOW CREATE TABLE和SHOW COLUMNS。

SHOW CHARACTER SET命令显示全部可用的字符集。它带有一个可选的LIKE子句来指示匹配哪些字符集名。

阅读全文

与mysqldba命令相关的资料

热点内容
三国志11汉化包在哪个文件夹 浏览:924
java订单系统源码 浏览:485
php开源视频系统 浏览:220
程序员自我隔离 浏览:95
kd与其它指标叠加源码图片 浏览:790
arcgis在云服务器上安装无反应 浏览:951
服务器bmc刷一半怎么办 浏览:369
phppdf打印 浏览:665
向量范数的源码 浏览:79
查找隐藏的文件夹win7 浏览:596
怎么才能玩我的世界正版服务器 浏览:147
邮箱中发件服务器是什么 浏览:219
菜鸟app怎么设置快递不放菜鸟驿站 浏览:795
android文件内容获取 浏览:719
iis如何配置php环境 浏览:597
android的内核源码 浏览:563
android代理app 浏览:828
小说代理漫画出书分销源码 浏览:989
博途软件编程加密 浏览:985
什么app可以学习一级建造师 浏览:569