仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 742|回复: 7
打印 上一主题 下一主题

[CentOS(社区)] 给大家带来mysql 下令年夜全 超强总结

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:18:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!一:数据库启动/中断
启动

servicemysqldstart
/etc/init.d/mysqldstart


封闭
servicemysqldstop
/etc/init.d/mysqldstart
mysqladmin-uroot-pshutdown

二:mysql数据库修正用户暗码,赋权
2.1修正mysql用户暗码

***1
mysqladmin-u用户名-p就暗码password新暗码

***2

经由过程修正(拔出)数据库mysql中user表纪录到达目标
#/var/mysql5/bin/mysql-hlocalhost-uroot-p
Enterpassword:不输出任何器材(新装数据库root暗码为空,间接回车便可)
mysql>usemysql
mysql>updateusersetpassword=password(新暗码)whereUSER=用户名andHOST=主机名;
依据你的必要修正sql语句的where前提,host能够为%(恣意主机),ip地点,localhost

##修正暗码失效,必定要革新权限哦
mysql>flushprivileges;

mysqladmin-hlocalhost-uroot-ppasswordreload
革新体系权限表,这个不克不及少,不然不失效。

***3
经由过程grant赋权下令
#/var/mysql5/bin/mysql-hlocalhost-uroot-p
Enterpassword:不输出任何器材(新装数据库root暗码为空,间接回车便可)
mysql>grant权限1,权限2,…权限non库.表to用户@主机名identifiedby用户暗码;
如:
mysql>grantallon*.*toroot@%identifiedby123456
mysql>grantallon*.*toroot@localhostidentifiedby123456

--------------------------------------
权限1,权限2,…权限n代表:
select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
当权限1,权限2,…权限n被allprivileges大概all取代,暗示付与用户全体权限。
当数据库称号.表称号被*.*取代,暗示付与用户操纵办事器上一切数据库一切表的权限。
用户地点能够是localhost,也能够是ip地点、呆板名字、域名。也能够用’%暗示从任何地点毗连。
‘毗连口令’不克不及为空,不然创立失利。
-------------------------------------
mysql>flushprivileges;

mysqladmin-hlocalhost-uroot-ppasswordreload
革新体系权限表,这个不克不及少,不然不失效。

三:mysql经常使用数据库、表、字段、索引办理操纵

3.1创立数据库下令,建库

#当数据库databasename不存在就增添,并指定字符集utf8和校验字符集utf8_general_ci
createdatabaseIFNOTEXISTSdatabasenamedefaultcharsetutf8COLLATEutf8_general_ci;

#间接创立数据库databasename,字符集是mysql默许设置指定的(取决于my.cnf的设置)
createdatabasedatabasename;

#当数据库databasename不存在就增添,并指定字符集utf8
createdatabaseIFNOTEXISTSdatabasenamedefaultcharsetutf8

3.2建表
#表存在就删除重修(无提醒哦)
DROPTABLEIFEXISTS`表名`;
CREATETABLE`表名`(
`字段值1`int(11)NOTNULLAUTO_INCREMENT,
`字段值2`varchar(30)DEFAULTNULL,
……
PRIMARYKEY(`字段值1`)
)ENGINE=存储引擎(如MyISAM,innodb)AUTO_INCREMENT=1DEFAULTCHARSET=字符集(如utf8);

#间接建表(表存在的话会提醒表已存在)
CREATETABLE`表名`(
`字段值1`int(11)NOTNULLAUTO_INCREMENT,
`字段值2`varchar(30)DEFAULTNULL,
……
PRIMARYKEY(`字段值1`)
)ENGINE=存储引擎(如MyISAM,innodb)AUTO_INCREMENT=1DEFAULTCHARSET=字符集(如utf8);

如:
DROPTABLEIFEXISTS`yuanshi`;
CREATETABLE`yuanshi`(
`goods_no`varchar(30)DEFAULTNULL,
`pid_color`varchar(30)DEFAULTNULL,
`products_no`varchar(30)DEFAULTNULL,
`create_time`datetimeDEFAULTNULL,
PRIMARYKEY(`goods_id`)
)ENGINE=MyISAMAUTO_INCREMENT=724DEFAULTCHARSET=utf8;

CREATETABLE`yuanshi`(
`goods_no`varchar(30)DEFAULTNULL,
`pid_color`varchar(30)DEFAULTNULL,
`products_no`varchar(30)DEFAULTNULL,
`create_time`datetimeDEFAULTNULL,
PRIMARYKEY(`goods_id`)
)ENGINE=INNODBAUTO_INCREMENT=724DEFAULTCHARSET=utf8;

3.3字段办理
##增添字段
altertable表名add字段名字段范例

##增添整数性字段
altertabletable_nameaddfiled_nameint(11)DEFAULT0;
##增添日期行字段
altertableyuanshiaddup_timedatetimeDEFAULTNULL;
##增添微整形字段
altertableyuanshiaddis_deltinyint(1)NOTNULLDEFAULT0;
##增添字符串字段
altertableyuanshiaddunitchar(10)DEFAULTNULL;
altertableyuanshiadddescriptionvarchar(255)DEFAULTNULL;

#在end_time字段前面增添一个字段
altertabletable_nameaddfiled_nameint(11)DEFAULT0AFTER`end_time`;

##修正字段point
ALTERTABLE`linuxshizhan`MODIFYCOLUMN`point`int(11)NOTNULLDEFAULT0COMMENT积分;
#修正weight字段前面的这个point字段
ALTERTABLE`linuxshizhan`MODIFYCOLUMN`point`int(11)NOTNULLDEFAULT0COMMENT积分AFTER`weight`;

##删除字段tag_ids
ALTERTABLE`linuxshizhan`DROPCOLUMN`tag_ids`;

3.4createindex给某个字段增添索引
语法:
create[unique|fulltext|spatial]indexindex_name
[usingindex_type]
ontbl_name(index_col_name,...)
个中:
index_name:索引的称号,索引在一个表中称号必需是独一的。
USINGindex_type:部分存储引擎同意在创立索引时指定索引的范例。index_type为存储引擎撑持的索引范例的称号,MySQL撑持的索引范例有BTREE和HASH。假如不指定USING子句,MySQL主动创立一个BTREE索引。
index_col_name:col_name暗示创立索引的列名。length暗示利用列的前length个字符创立索引。利用列的一部分创立索引可使索引文件年夜年夜减小,从而节俭磁盘空间。在某些情形下,只能对列的前缀举行索引。比方,索引列的长度有一个最年夜下限,因而,假如索引列的长度凌驾了这个下限,那末便可能必要使用前缀举行索引。BLOB或TEXT列必需用前缀索引。前缀最长为255字节,但关于MyISAM和InnoDB表,前缀最长为1000字节。别的还能够划定索引按升序(ASC)仍是降序(DESC)分列,默许为ASC。假如一条SELECT语句中的某列依照降序分列,那末在该列上界说一个降序索引能够加速处置速率。
UNIQUE|FULLTEXT|SPATIAL:UNIQUE暗示创立的是独一性索引;FULLTEXT暗示创立全文索引;SPATIAL暗示为空间索引,能够用来索引多少数据范例的列

主要提醒:
CREATEINDEX语句其实不能创立主键。
在一个索引的界说中包括多个列,两头用逗号离隔,可是它们要属于统一个表。如许的索引叫做复合索引。

如:
CREATEINDEXidx_firstLetterontb_drug_base(firstLetter);

3.5经由过程altertable增添索引

1.PRIMARYKEY(主键索引)
ALTERTABLE`table_name`ADDPRIMARYKEY(`column`)

2.UNIQUE(独一索引)
ALTERTABLE`table_name`ADDUNIQUE(`column`)

3.INDEX(一般索引)

ALTERTABLE`table_name`ADDINDEXindex_name(`column`)

4.FULLTEXT(全文索引)
ALTERTABLE`table_name`ADDFULLTEXT(`column`)

5.多列索引
ALTERTABLE`table_name`ADDINDEXindex_name(`column1`,`column2`,`column3`)

3.6检察索引
SHOWINDEXFROMtbl_name[FROMdb_name]

四:设置数据库编码(字符集)

4.1.设置全部数据库编码

a.启动mysql的时分,mysqld_safe下令行到场
--default-character-set=gbk
gbk为字符集编码

b.修正my.cnf,在[mysqld]中到场
default-character-set=gbk
gbk为字符集编码

4.2.改动某个库的编码格局:在mysql提醒符后输出下令
#mysql安装目次/bin/mysql-hlocalhost-uroot-p
mysql>alterdatabase数据库名defaultcharactersetgbk;
gbk为字符集编码
显现字符集编码相干变量
mysql>showvariableslikecollation_%;
+----------------------+-----------------+
|Variable_name|Value|
+----------------------+-----------------+
|collation_connection|utf8_general_ci|
|collation_database|utf8_general_ci|
|collation_server|utf8_general_ci|
………………………………………………
+----------------------+-----------------+
mysql>showvariableslikecharacter_set%
+--------------------------+--------+
|Variable_name|Value|
+--------------------------+--------+
|character_set_client|latin1|
|character_set_connection|latin1|
|character_set_database|latin1|
|character_set_filesystem|binary|
|character_set_results|latin1|
|character_set_server|latin1|
|character_set_system|utf8|
………………………………………………
+--------------------------+--------+
设置字符集相干变量
mysql>SETcharacter_set_client=gbk;
mysql>SETcharacter_set_connection=gbk;
mysql>SETcharacter_set_results=gbk;

5、mysql经常使用办理下令

mysql>shell下
showdatabases;显现一切数据库
showprocesslist;检察mysql历程列表
showfullprocesslist;检察mysql历程列表,含具体SQL
showtables;显现一切表
showvariables;显现变量
usedatabasename;切换数据库
desctablename;检察表布局
showtablestatus;检察表形态
showstatus;检察体系形态
showslavestatus;检察从库形态
FLUSHTABLESWITHREADLOCK;锁定命据库,一样平常实行备份钱大概创建主从快照前
UNLOCKTABLES;排除锁定,一样平常实行完整份的时分大概创建主从快照时

mysqladmin-hlocalhost-uroot-ppasswordprocesslist检察mysql历程列表


6、mysql日记办理
mysql>flushlogs;
#按文件:删除mysql-bin.000354之前的日记,不包括mysql-bin.000354
MYSQL>purgebinarylogstomysql-bin.000354;

QueryOK,0rowsaffected(0.16sec)

#定时间:删除2013-08-1000:00:00之前的日记

MYSQL>purgebinarylogsbefore2013-08-1000:00:00;

#定时间:请理三天之前的日记

MYSQL>purgemasterlogsbeforedate_sub(now(),interval3day);

主动清算日记:

#修正my.cnf文件设置bin-log过时工夫,如日记保存7天

[mysqld]

expire-logs-days=7

固然,做了flushlogs;举措后,间接到mysql数据文件夹,间接用rm-fmysql-bin.相干的文件(最新的谁人日记文件不克不及删除哦!!!)
假定最新的日记文件是mysql-bin.000354这个,那末你就能够间接到mysql数据文件夹
rm-fmysql-bin.000353
rm-fmysql-bin.000352
如你不断定能够经由过程ls-lht确认mysql数据文件夹的最新日记文件究竟是谁人。
固然自己仍是倡议你利用purgebinarylogs往删除对照保险哦


7、经常使用mysql数据库备份
7.1.收费工具

a.间接拷贝数据文件,必要中断数据库,不顺应天生体系。
间接拷贝数据文件最为间接、疾速、便利,但弱点是基础上不克不及完成增量备份。为了包管数据的分歧性,必要在备份文件前,实行以下SQL语句:
mysql>FLUSHTABLESWITHREADLOCK;(大概中断数据库,不顺应临盆体系。)
也就是把内存中的数据都革新到磁盘中,同时锁定命据表,以包管拷贝过程当中不会有新的数据写进。这类***备份出来的数据规复也很复杂,间接拷贝回本来的数据库目次下便可。
b.对mysqlisam存储体例的,可使用hotcopy,mysqldump
c.对innodb存储体例的,利用mysqldump
d.对同时利用innodb和mysqlisam的mysqldump
e.主从复制(当主库数据被不测大概歹意删除后,作为备份的从库也就不克不及用了。)

7.2.贸易软件
IBBackup

7.3mysql数据库物理备份:间接拷贝mysql数据库文件
先中断mysql数据库
servicemysqldstop

运转体系下令
#cp-rmysql数据库的data目次备份文件寄存路径
大概
#tar-cvzf备份文件名.tar.gzmysql数据库的data目次

mysql数据库物理备份的复原:
间接把文件掩盖到响应数据库data目次便可

7.4mysqlhotcopy热备份,只针对mysiam存储引擎
MySQLHotCopy是一个perl剧本,实行时分锁定命据库表,然后利用体系下令cp大概scp做的一种备份。等备份完成的时分,才开释表锁定,并革新日记,他是一种十分快速的体例,可是数据备份只能在通一台呆板上,只合适mysqlisam存储体例
下令
#mysql安装目次/bin/mysqlhotcopy--user=用户--password=暗码-q"数据库名"备份文件寄存目次

复原:
间接把文件掩盖到响应数据库data目次便可


7.5mysqldump备份
合适mysqlisam和innodb存储体例,经常使用于数据备份,迁徙。
mysqldump-hhost-uuser-ppass-B数据库名>数据库备份名.sql
将数据库“数据库名”中的一切表备份到“数据库备份名.sql”文件,
“数据库备份名.sql”是一个文本文件,文件名任取。
该下令备份出来的sql中带有createdabatase信息,就是说备份出来的sql在复原时会把存在的库删除重修


mysqldump-uroot-pdcbicc106-Bmysql>mm.sql

##不含建库信息的mysqldump
mysqldump-hhost-uuser-ppass-B数据库名>数据库备份名.sql

mysqldump-uroot-pdcbicc106-B-nmysql>mm2.sql

#mysqldump-hhost-uuser-ppass--opt数据库名表1表2表3……表n>数据库备份名.sql
将数据库“数据库名”中的表1表2表3……表n备份到“数据库备份名.sql”文件,
“数据库备份名.sql”是一个文本文件,文件名任取。

#mysqldump-hhost-uuser-ppass--databases数据库1数据库1>数据库备份名.sql
将数据库“数据库1”和“数据库2”备份到“数据库备份名.sql”文件,
“数据库备份名.sql”是一个文本文件,文件名任取。

#mysqldump-hhostname-uusername-ppassword-no-data--databasesdatabasename1databasename2databasename3>multibackupfile.sql
仅仅备份数据库布局

#mysqldump-hhost-uuser-ppass--opt--all-databases>all-databases.sql
将一切数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。)

复原MySQL数据库

#mysql-hhostname-uusername-ppassworddatabasename<backupfile.sql
#mysql--default-character-set=utf8-uxxx[database]<xxx.sql

复原紧缩的MySQL数据库
#gunzip<backupfile.sql.gz|mysql-uusername-ppassworddatabasename
#gunzip<backupfile.sql.gz|mysql--default-character-set=utf8-uxxx[database]

将数据库转移到新办事器
#mysqldump-uusername-ppassworddatabasename|mysqlChost=*.*.*.*-Cdatabasename


备份有innodb存储体例的
dump参考选项:
--opt--default-character-set=utf8
--triggers-R--hex-blob--all-databases
--flush-logs
--single-transaction
--delete-master-logs
-x


7.6导出表布局
mysqldump-h192.168.1.30-uroot-123456--default-character-set=utf8-Bbackdb-d>/bak/biaojiegou.sql

针对mysql5.6利用了全局事件GTID的库,必要加--set-gtid-purged=OFF参数。不然报错
mysqldump-h192.168.1.30-uroot-123456--default-character-set=utf8--set-gtid-purged=OFF-Bbackdb-d>/bak/biaojiegou.sql

7.7只导出trigger,只备份trigger
mysqldump-h127.0.0.1-uroot-p123456--skip-opt--trigger-d-n-t-Bbackdb>/bak/backdb_trigger

7.8导出函数funtcion和event
mysqldump-h192.168.1.30-uroot-p123456--default-character-set=utf8-n-d-t-R-Edbname>/bak/funcation.sql
针对mysql5.6利用了全局事件GTID的库,必要加--set-gtid-purged=OFF参数。不然报错
mysqldump-h192.168.1.30-uroot-p123456--default-character-set=utf8--set-gtid-purged=OFF-n-d-t-R-Edbname>/bak/funcation.sql

7.9只备份数据库的数据,不带任何表布局和函数,触发器
mysqldump-uroot-pdcbicc106-n-t-Bmysql>mydata.sql

8.0以分表***导出数据,这类体例只合适备份和复原只能在mysql地点的办事器上实行哦,丙炔备份目次{BACKUPDIR}必需有mysql运转用户(通常是mysql用户)的权限,牢记牢记
假如没有请chownmysql:mysql{BACKUPDIR}
分表导出合适:NOTE:Thisonlyworksifmysqldumpisrunonthesamemachineasthemysqldserver.

mysqldump-uroot-p${MYSQLPASSWORD}-T${BACKUPDIR}${DATABASENAME}
mydump-hlocalhost-uroot-ppassword-T备份目次数据库名表名

分表体例的数据复原:
mysqlimport-hlocal-uroot-p`123456`backdb`find/data/backup/database/backdb/2010-02-27/-name"*.txt"`

8、mysql慢查询日记分享工具

mysqldumpslow:perl工具,mysql官方自带
mysqlsla:perl工具功效壮大,数据报表完全,定制化才能强.
mysql-explain-slow-log:perl无
mysql-log-filter:pythonorphp不掉功效的条件下,坚持输入简便
myprofi:php工具,十分精简


这里保举mysql慢查询日记剖析工具mysqlsla

利用举例
将慢日记mysqlslow.log中实行工夫最长的10条sql显现并写到sql_10.log中。
mysqlsla-ltslow-sf"+select"-top10mysqlslow.log>sql_10.log

将慢日记mysqlslow.log中数据库为mydb的一切select和update的慢sql,显现并将查询次数最多的100条写到sql_su100.sql中。
mysqlsla-ltslow-sf"+select,update"-top100-sortc_sum-dbmydbmysqlslow.log>sql_su100.log

mysqlsla-ltslow-sf"+select"-top100-sortc_summysqld_slow_query.log>sql_su100.log

九:binlog日记剖析,经由过程mysqlbinlog工具剖析写操纵的sql语句,经常使用于mysql经由过程binlog日记规复数据。
举例:
进进mysql的数据文件夹,如/var/lib/mysql/
cd/var/lib/mysql/
mysqlbinlog--start-datetime="2013-08-1400:00:00"--stop-datetime="2013-08-1423:59:59"mysql-bin.000098

如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!
灵魂腐蚀 该用户已被删除
沙发
发表于 2015-1-17 10:27:25 | 只看该作者
最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。
admin 该用户已被删除
板凳
发表于 2015-1-25 17:35:55 | 只看该作者
其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。
若天明 该用户已被删除
地板
发表于 2015-2-3 12:44:23 | 只看该作者
linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!
因胸联盟 该用户已被删除
5#
发表于 2015-2-9 03:08:49 | 只看该作者
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
不帅 该用户已被删除
6#
发表于 2015-2-26 20:21:13 | 只看该作者
随着Linux技术的更加成熟、完善,其应用领域和市场份额继续快速增大。目前,其主要应用领域是服务器系统和嵌入式系统。然而,它的足迹已遍布各个行业,几乎无处不在。
深爱那片海 该用户已被删除
7#
发表于 2015-3-8 17:53:58 | 只看该作者
为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。
再现理想 该用户已被删除
8#
发表于 2015-3-16 14:31:41 | 只看该作者
Linux操作系统这个名词记得在很早以前就听过,但当时并不知道具体是什么样的操作系统,只知道是一个与嵌入式密切相关的操作系统。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 10:51

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表