仓酷云

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

[CentOS(社区)] Linux教程之Centos下MySQL利用总结

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 21:17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!1、MySQL安装


Centos下安装mysql请点开:http://www.centoscn.com/CentosServer/sql/2013/0817/1285.html

2、MySQL的几个主要目次


MySQL安装完成后不象SQLServer默许安装在一个目次,它的数据库文件、设置文件和下令文件分离在分歧的目次,懂得这些目次十分主要,特别关于Linux的初学者,由于Linux自己的目次布局就对照庞大,假如弄不分明MySQL的安装目次那就无从谈起深切进修。  
上面就先容一下这几个目次。  
2.1、数据库目次  

/var/lib/mysql/  
2.2、设置文件  

/usr/share/mysql(mysql.server下令及设置文件)  
2.3、相干下令  

/usr/bin(mysqladminmysqldump等下令)  
2.4、启动剧本  

/etc/rc.d/init.d/(启动剧本文件mysql的目次)


3、登录MySQL




3.1、毗连本机MySQL


例1:毗连到本机上的MYSQL。
起首在翻开DOS窗口,然落后进目次mysqlbin,再键进下令mysql-uroot-p,回车后提醒你输暗码,假如刚安装好MYSQL,超等用户root是没有暗码的,故间接回车便可进进到MYSQL中了,MYSQL的提醒符是:mysql>。
3.2、毗连近程MySQL

例2:毗连到近程主机上的MYSQL。假定近程主机的IP为:110.110.110.110,用户名为root,暗码为abcd123。则键进以下下令:
mysql-h110.110.110.110-uroot-pabcd123
(注:u与root能够不必加空格,别的也一样)
3.3、加入MYSQL

下令:exit(回车)。

4、修正登录暗码  


MySQL默许没有暗码,安装终了增添暗码的主要性是不问可知的。
格局:mysqladmin-u用户名-p旧暗码password新暗码
4.1、初次改暗码

例1:给root加个暗码ab12。起首在DOS下进进目次mysqlbin,然后键进以下下令:
mysqladmin-uroot-passwordab12
注:由于入手下手时root没有暗码,以是-p旧暗码一项就能够省略了。
4.2、再次改暗码

例2:再将root的暗码改成djg345。
mysqladmin-uroot-pab12passworddjg345

5、增添用户


(注重:和下面分歧,上面的由于是MySQL情况中的下令,以是前面都带一个分号作为下令停止符)
格局:grantselecton数据库.*to用户名@登录主机identifiedby"暗码"
例1、增添一个用户test1暗码为abc,让他能够在任何主机上登录,并对一切数据库有查询、拔出、修正、删除的权限。起首用以root用户连进MySQL,然后键进以下下令:
grantselect,insert,update,
deleteon*.*totest1@"%"Identifiedby"abc";

但例1增添的用户是非常伤害的,你想如某团体晓得test1的暗码,那末他就能够在internet上的任何一台电脑上登录你的MySQL数据库并对你的数据能够随心所欲了,办理举措见例2。
例2、增添一个用户test2暗码为abc,让他只能够在localhost上登录,并能够对数据库mydb举行查询、拔出、修正、删除的操纵(localhost指当地主机,即MySQL数据库地点的那台主机),如许用户即便用晓得test2的暗码,他也没法从internet上间接会见数据库,只能经由过程MySQL主机上的web页来会见。
grantselect,insert,update,
deleteonmydb.*totest2@localhostidentifiedby"abc";

假如你不想test2有暗码,能够再打一个下令将暗码消失落。
grantselect,insert,update,deleteonmydb
.*totest2@localhostidentifiedby""; 

用新增的用户假如登录不了MySQL,
在登录时用以下下令:  mysql-uuser_1-p -h192.168.113.50 (-h后跟的是要登录主机的ip地点) 


6、启动与中断  



6.1、启动  

MySQL安装完成后启动文件mysql在/etc/init.d目次下,在必要启动时运转上面下令便可。  
[root@test1init.d]#/etc/init.d/mysqlstart  
6.2、中断  

/usr/bin/mysqladmin-uroot-pshutdown  
6.3、主动启动  

6.3.1、观察mysql是不是在主动启动列表中  

[root@test1local]# /sbin/chkconfigClist  
6.3.2、把MySQL增加到你体系的启动办事组内里往  

[root@test1local]# /sbin/chkconfig Cadd mysql  
6.3.3、把MySQL从启动办事组内里删除。  

[root@test1local]# /sbin/chkconfig Cdel mysql


7、变动MySQL目次  



MySQL默许的数据文件存储目次为/var/lib/mysql。
假设要把目次移到/home/data下必要举行上面几步:  
7.1、home目次下创建data目次  

cd/home  mkdirdata  
7.2、把MySQL办事历程停失落:  

mysqladmin-uroot-pshutdown  
7.3、把/var/lib/mysql全部目次移到/home/data  

mv/var/lib/mysql /home/data/  
如许就把MySQL的数据文件挪动到了/home/data/mysql下  
7.4、找到my.cnf设置文件  

假如/etc/目次下没有my.cnf设置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝个中一个到/etc/并更名为my.cnf)中。
下令以下:  
[root@test1mysql]#cp/usr/share/mysql/my-medium.cnf /etc/my.cnf  
7.5、编纂MySQL的设置文件/etc/my.cnf  

为包管MySQL可以一般事情,必要指明mysql.sock文件的发生地位。
修正socket=/var/lib/mysql/mysql.sock一行中等号右侧的值为:/home/mysql/mysql.sock。
操纵以下:  
vi my.cnf   
(用vi工具编纂my.cnf文件,找到以下数据修正之)  
#TheMySQLserver   [mysqld]   
port   =3306   
#socket =/var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”正文此行)   
socket =/home/data/mysql/mysql.sock   (加上此行)  
7.6、修正MySQL启动剧本/etc/rc.d/init.d/mysql  

最初,必要修正MySQL启动剧本/etc/rc.d/init.d/mysql,把个中datadir=/var/lib/mysql一行中,等号右侧的路径改成你如今的实践寄存路径:home/data/mysql。  
[root@test1etc]#vi /etc/rc.d/init.d/mysql  
#datadir=/var/lib/mysql    (正文此行)  
datadir=/home/data/mysql  (加上此行)  
7.7、从头启动MySQL办事  

/etc/rc.d/init.d/mysql start  
或用reboot下令重启Linux  
假如事情一般挪动就乐成了,不然对比后面的7步再反省一下。  


8、MySQL的经常使用操纵  



注重:MySQL中每一个下令后都要以分号;开头。 
8.1、MySQL经常使用操纵下令 

8.1.1、显现数据库列表:

showdatabases;
刚入手下手时才两个数据库:mysql和test。MySQL库很主要它内里有MYSQL的体系信息,我们改暗码和新增用户,实践上就是用这个库举行操纵。
8.1.2、显现库中的数据表:

usemysql;//翻开库,学过FOXBASE的必定不会生疏吧
showtables;
8.1.3、显现数据表的布局:

describe表名;
8.1.4、建库:

createdatabase库名;
8.1.5、建表:

use库名;
createtable表名(字段设定列表);
8.1.6、删库和删表:

dropdatabase库名;
droptable表名;
8.1.7、将表中纪录清空:

deletefrom表名;
8.1.8、显现表中的纪录:

select*from表名;
8.1.9、增添纪录  

比方:增添几条相干记录。  
mysql>insertintonamevalues(,张三,男,1971-10-01);  
mysql>insertintonamevalues(,白云,女,1972-05-20);  
可用select下令来考证了局。  
mysql>select*fromname;  
+----+------+------+------------+  
|id|xm |xb |csny   |  
+----+------+------+------------+  
| 1|张三|男 |1971-10-01|  
| 2|白云|女 |1972-05-20|  
+----+------+------+------------+  
8.1.10、修正记录  

比方:将张三的出身年代改成1971-01-10  
mysql>updatenamesetcsny=1971-01-10wherexm=张三;  
8.1.11、删除记录  

比方:删除张三的记录。  
mysql>deletefromnamewherexm=张三;  

8.2、一个建库和建表和拔出数据的实例

dropdatabaseifexistsschool;//假如存在SCHOOL则删除
createdatabaseschool;//创建库SCHOOL
useschool;//翻开库SCHOOL
createtableteacher//创建表TEACHER
(
idint(3)auto_incrementnotnullprimarykey,
namechar(10)notnull,
addressvarchar(50)default’深圳’,
yeardate
);//建表停止
//以下为拔出字段
insertintoteachervalues(’’,’glchengang’,’深圳一中’,’1976-10-10’);
insertintoteachervalues(’’,’jack’,’深圳一中’,’1975-12-23’);
注:在建表中(1)将ID设为长度为3的数字字段:int(3)并让它每一个纪录主动加一:auto_increment其实不能为空:notnull并且让他成为主字段primarykey(2)将NAME设为长度为10的字符字段(3)将ADDRESS设为长度50的字符字段,并且缺省值为深圳。varchar和char有甚么区分呢,只要等今后的文章再说了。(4)将YEAR设为日期字段。
假如你在MySQL提醒符键进下面的下令也能够,但不便利调试。你能够将以上下令原样写进一个文本文件中假定为school.sql,然后复制到c:下,并在DOS形态进进目次mysqlin,然后键进以下下令:
mysql-uroot-p暗码<c:school.sql
假如乐成,空出一行无任何显现;若有毛病,会有提醒。(以上下令已调试,你只需将//的正文往失落便可利用)。



九、修正数据库布局



9.1、字段操纵


9.1.1、增添字段

altertabledbnameaddcolumn<字段名><字段选项>
9.1.2、修正字段

altertabledbnamechange<旧字段名><新字段名><选项>
9.1.3、删除字段

altertabledbnamedropcolumn<字段名>


10、数据导出



数据导出次要有以下几种***:
  利用selectintooutfile"filename"语句
  利用mysqldump有用步伐
10.1、利用selectintooutfile"filename"语句

能够在mysql的下令行下或在php步伐中实行它。我上面以在mysql下令行下为例。在php中利用时,将其改成响应的查询举行处置便可。不外在利用这个下令时,请求用户具有file的权限。如我们有一个库为phptest,个中有一个表为driver。如今要把driver卸成文件。实行下令:
  mysql>usephptest;
  DatabaseChanged
  mysql>select*fromdriverintooutfile"a.txt";
  QueryOK,22rowsaffected(0.05sec)
下面就能够完成将表driver从数据库中卸到a.txt文件中。注重文件名要加单引号。那末这个文件在哪呢?在mysql目次下有一个data目次,它便是数据库文件所放的中央。每一个库在独自占一个子目次,以是phptest的目次为c:mysqldataphptest(注重:我的mysql安装在c:mysql下)。好,如今我们出来,a.txt就是它。翻开这个文件,可能是:
  1MikaHakinnen1
  2DavidCoulthard1
  3MichaelSchumacher2
  4RubensBarrichello2
  ...
大概另有良多纪录。每一个字段之间是用制表符分隔的(        )。那末我们能够修正输入文件名的目次,以便放在指定的地位。如"a.txt"能够改成"./a.txt"或"/a.txt"。个中"./a.txt"放在c:mysqldata目次下了,而"/a.txt"文件则放在c:目次下了。以是select下令以为确当前目次是数据库的寄存目次,这里是c:mysqldata。
利用select下令还能够指定卸出文件时,字段之间的分开字符,本义字符,包含字符,及纪录行分开字符。列鄙人面:
  FIELDS
  TERMINATEDBY"        "
  [OPTIONALLY]ENCLOSEDBY""
  ESCAPEDBY""
  LINES
  TERMINATEDBY"
"



  TERMINATED暗示字段分开


  [OPTIONALLY]ENCLOSED暗示字段用甚么字符包含起来,假如利用了OPTIONALLY则只要CHAR和VERCHAR被包含ESCAPED暗示当必要本义时用甚么作为本义字符LINESTERMINATED暗示每行纪录之间用甚么分开下面列的是缺省值,并且这些项都是可选的,不选则利用缺省值。能够依据必要举行修正。给出一个例子以下:
  mysql>select*fromdriverintooutfile"a.txt"fieldsterminatedby","
  enclosedby""";
  QueryOK,22rowsaffected(0.06sec)
了局大概以下:
  "1","Mika","Hakinnen","1"
  "2","David","Coulthard","1"
  "3","Michael","Schumacher","2"
  "4","Rubens","Barrichello","2"
  ...
能够看到每一个字段都用","举行了分开,且每一个字段都用"""包含了起来。注重,行纪录分开符能够是一个字符串,请人人自行测试。不外,假如输入文件在指定目次下假如存在的话就会报错,先删除再测试便可。
10.2、利用mysqldump有用步伐

从下面的select***能够看出,输入的文件只要数据,而没有表布局。并且,一次只能处置一个表,要处置多个表则不是很简单的。不外能够将select下令写进一个sql文件(复制文本应当是很简单的吧),然后在下令行下实行便可:mysql库名先来个最复杂的吧:
mysqldumpphptest>a.sql
大概了局以下:
  #MySQLdump7.1
  #
  #Host:localhostDatabase:phptest
  #--------------------------------------------------------
  #Serverversion3.22.32-shareware-debug
  #
  #Tablestructurefortable"driver"
  #
  CREATETABLEdriver(
  drv_idint(11)DEFAULT"0"NOTNULLauto_increment,
  drv_forenamevarchar(15)DEFAULT""NOTNULL,
  drv_surnamevarchar(25)DEFAULT""NOTNULL,
  drv_teamint(11)DEFAULT"0"NOTNULL,
  PRIMARYKEY(drv_id)
  );
  #
  #Dumpingdatafortable"driver"
  #


  INSERTINTOdriverVALUES(1,"Mika","Hakinnen",1);
  INSERTINTOdriverVALUES(2,"David","Coulthard",1);
  INSERTINTOdriverVALUES(3,"Michael","Schumacher",2);
  INSERTINTOdriverVALUES(4,"Rubens","Barrichello",2);
  ...


  假如有多表,则分离列鄙人面。能够看到这个文件是一个完全的sql文件,假如要将其导进到别的的数据库中能够经由过程下令行体例,很便利:mysqlphptest<a.sql。假如将数据从当地传到办事器上,则能够将这个文件上传,然后在办事器经由过程下令行体例装进数据。
假如只想卸出建表指令,则下令以下:
  mysqldump-dphptest>a.sql
假如只想卸出拔出数据的sql下令,而不必要建表下令,则下令以下:
  mysqldump-tphptest>a.sql
那末假如我只想要数据,而不想要甚么sql下令时,应当怎样操纵呢?
  mysqldump-T./phptestdriver
个中,只要指定了-T参数才能够卸出纯文本文件,暗示卸出数据的目次,./暗示以后目录,即与mysqldump统一目次。假如不指定driver表,则将卸出全部数据库的数据。每一个表会天生两个文件,一个为.sql文件,包括建表实行。另外一个为.txt文件,只包括数据,且没有sql指令。
对卸出的数据文件,也能够同select***一样,指定字段分开符,包含字符,本义字段,行纪录分开符。参数列鄙人面:
  --fields-terminated-by=字段分开符
  --fields-enclosed-by=字段包含符
  --fields-optionally-enclosed-by=字段包含符,只用在CHAR和VERCHAR字段上
  --fields-escaped-by=本义字符
  --lines-terminated-by=行纪录分开符
我想人人应当分明这些参数的意义了吧。一个例子以下:
  mysqldump-T./--fields-terminated-by=,--fields-enclosed-by="phptestdriver
输入了局为:
  "1","Mika","Hakinnen","1"
  "2","David","Coulthard","1"
  "3","Michael","Schumacher","2"
  "4","Rubens","Barrichello","2"
  ...
请注重字符的利用。
10.3、小结

以上为利用select和mysqldump有用步伐来卸出文本的***。select合适使用步伐举行处置,而mysqldump则为手工操纵,同时供应壮大的导出功效,而且能够处置全部库,或库中指定的多表。人人能够依据需求自行决意利用。
同时另有一些***,如间接数据库文件拷贝也能够,可是挪动后的数据库体系与原体系应分歧才行。这里就不再提了。


11、数据导进



同导出相相似,导进也有两种***:
  利用LOADDATAINFILE"filename"下令
  利用mysqlimport有用步伐
  利用sql文件
因为前两个处置与导出处置类似,只不外是它们的逆操纵,故只给出几种下令利用的例子,不再注释了,人人能够自行查阅手册。
11.1、利用load下令:

  loaddatainfile"driver.txt"intotabledriverfieldsterminatedby","
  enclosedby""";
山那边是海 该用户已被删除
沙发
发表于 2015-1-17 09:59:04 | 只看该作者
虽然大家都比较喜欢漂亮的mm,但是在学linux的过程中,还是要多和“男人”接触一下:P遇到问题的时候,出来看说和上网查之外,就是要多用linux下的man命令找找帮助。
再见西城 该用户已被删除
板凳
发表于 2015-1-26 05:09:43 | 只看该作者
随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。
小魔女 该用户已被删除
地板
发表于 2015-2-4 17:10:03 | 只看该作者
永中office 2004增强版安装只需要默认安装即可使用并操作大多与win系统雷同,打印机的配置和管理,记录光盘等。
金色的骷髅 该用户已被删除
5#
发表于 2015-2-10 05:19:31 | 只看该作者
熟悉系统的基本操作,Linux的图形界面直观,操作简便,多加上机练习就可熟悉操作,在Linux下学习办公软件等常用软件。
admin 该用户已被删除
6#
发表于 2015-2-28 22:18:13 | 只看该作者
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
谁可相欹 该用户已被删除
7#
发表于 2015-3-10 11:03:17 | 只看该作者
其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。
不帅 该用户已被删除
8#
发表于 2015-3-17 07:08:48 | 只看该作者
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-24 03:23:53 | 只看该作者
硬盘安装及光盘安装,清楚了解安装Linux应注意的有关问题,如安装Linux应在最后一个分区内,至少分二个分区。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-27 20:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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