Chinaunix首页 | 论坛 | 博客
  • 博客访问: 31356
  • 博文数量: 16
  • 博客积分: 416
  • 博客等级: 下士
  • 技术积分: 120
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-14 21:30
文章分类
文章存档

2011年(16)

我的朋友

分类: LINUX

2011-06-14 22:22:49

  MySQL6010-11-29 13:55:02阅读3评论0 字号:大中小 订阅 RPM安装包安装方法:

  一.先查看是否已经安装MySQL :

  (1)查询

  [root@yourdomainname/]# rpm -qa | grep mysql (或MySQL)

  mysql-3.23.58-9

  php-mysql-4.3.4-11

  mod_auth_mysql-5030510-4.1

  mysql-server-3.23.58-9

  说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,我上面的例子是fedora core2默认安装mysql的rpm软件包列表,如果是别的linux版本列出来的列表有可能会不一样,不过不用担心,不管是什么,卸载都从最下面的一个包开始,直到卸载掉第一个为止。

  (2)卸载MySQL

  比如:在这个例子中,我们应该先卸载mysql-server-3.23.58-9 方法如下:

  [root@yourdomainname/]# rpm –e mysql-server

  说明:rpm –e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,

  比如我们下一步卸载mod_auth_mysql-5030510-4.1包,方法如下:

  [root@yourdomainname/]# rpm –e mod_auth_mysql

  二.安装MySQL

  MySQL主要有以下一些RPM包组成.(VERDION为版本号)

  MySQL-server-VERDION.i386.rpm ----MySQL的服务器.如果只使用客户端连接另外一个机器可以不安装这个包.

  MySQL-Max-VERDION.i386.rpm ----提供了服务器的其他功能,这个包需要 MySQL-server支持,安装前首先安装第一个包.

  MySQL-client-VERDION.i386.rpm ----MySQL客户端

  MySQL-bench-VERDION.i386.rpm ----测试工具包,这个包需要Perl和DBD::mysql模块的支持.

  MySQL-devel-VERDION.i386.rpm ----编译其他MySQL客户端所需的库文件和包含文件.

  MySQL-shared-VERDION.i386.rpm ----共享库文件(libmysqlclient.so*),这些库文件在其他语言或者应用程序使用MySQL时动态加载需要.

  MySQL-embedded-VERDION.i386.rpm ----嵌入平台的MySQL服务器.

  MySQL-VERDION.src.i386.rpm ----所由包的源代码.

  安装MySQL一般只需下面两个文件:

  MySQL-server-VERDION-0.i386.rpm

  MySQL-client-VERDION .i386.rpm

  在安装前需要修改 etc/seliunx 下的 config 文件:

  原文件为:

  SELINUX=enforcing

  #SELINUX=disabled

  修改为:

  #SELINUX=enforcing

  SELINUX=disabled

  1)安装服务器端

  在有两个rmp文件的目录下运行如下命令:

  [root@test1 local]# rpm -ivh MySQL-server-VERDION .rpm

  说明:rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停 止。

  显示如下信息。

  warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5

  Preparing... ########################################### [100%]

  1:MySQL-server ########################################### [100%]

  。。。。。。(省略显示)

  /usr/bin/mysqladmin -u root password 'new-password'

  /usr/bin/mysqladmin -u root -h test1 password 'new-password'

  。。。。。。(省略显示)

  安装完毕后将etc/seliunx 下的 config 文件恢复为原样:

  SELINUX=enforcing #SELINUX=disabled 2)安装客户端

  运行如下命令:

  [root@test1 local]# rpm -ivh MySQL-client-VERDION .i386.rpm

  warning: MySQL-client-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5

  Preparing... ########################################### [100%]

  1:MySQL-client ########################################### [100%]

  显示安装完毕。

  安装完毕后用

  [root@yourdomainname/]# rpm -qa | grep MySQL (注意MySQL5的大小写)

  命令确认安装文件。

  三.停起MySQL服务:

  MySQL提供了mysql守护进程,启动MySQL可以通过守护进程来实现:

  service mysqld stauts | start | stop | restart

  也可以用下面的命令停起服务:

  /etc/init.d/mysqld start | restart | stop

  如果用户安装MySQL设置了密码。可以使用下面的命令来停止MySQL

  mysqladmin –u username –p paddword shutdown

  没有密码可以直接使用:

  mysqladmin shutdown

  测试MySQL守护进程是否正在运行,可以使用mysqladmin version 命令行:

  除了启动程序外,安装程序还在 /usr/bin 目录下安装了许多实用程序.通过这些程序可以帮助用户实现对数据库的管理和维护:

  MySQL实用程序列表

  程序名称 功能描述 myisamchk 描述,检查,优化和修复MySQl表的实用程序,也可以显示表的相关信息 make_binary_release 制作一个编译MySQL的一个二进制版本。 msql2mysql 一个shell脚本,转换msql程序到MySQL,但是他不能处理所有的情况 mysql MySQL是一个简单的外科(具有GNU readline 能力),他支持交互式和非交互式实用。当采用交互实用时,查询结果会以ASVII表的格式被显示。当采用非交互实用时(例如,作为一个过滤器),结果是义定位符分割的格式表示(输出格式可以使用命令行选项定制) mysqlaccess 一个脚本,用于检查对主机,用户和数据库组合的存取权限 mysqlbug MySQL的错误报告脚本。用于向MySQL邮件列表添加错误报告 mysqld Sql的守护进程。他应该一直在后台运行 mysqladmin 执行管理操作的实用程序,例如创建或删除数据库,装载授权表,刷新到磁盘中和打开日志文件。Mysqladmin也可以被用来从服务器检索版本,进程和状态。 mysqldump 以sql语句或定位符分割的文本文件格式将一个MySQL数据库导出到一个文件中 mysqlimport 使用LOAD DATA INFILE 将文本文件导入其各自对应的表中 mysqlshow 显示数据库,表,列和索引的信息 mysql_install_db 以默认权限创建MySQL授权表。通常仅被执行一次,就是在系统上第一次安装MySQL时执行 replace 一个实用程序,由msql2mysql使用,但具有一般适用性。Replace会替换文件内容或标准输入提供的字符串。使用一台有限状态机首先匹配更长的字符串,用来替换字符串 四.MySQL数据库的备份

  备份一般采用下面的格式:

  [root@test1 local]# mysqldump database_name > output_backup

  也可采用gzip进行压缩:

  [root@test1 local]# mysqldump database_name | gzip > output_backup

  如果数据库中有大量无需备份的表,也可以使用库名加表名的方法,有选择的进行备份:

  [root@test1 local]# mysqldump database_name tabale_name . . . | gzip > output_backup.gz

  恢复备份可以使用:

  [root@test1 local]# mysql --one-database database-name < output_backup

  五.MySQL的管理和维护。

  [root@test1 local]# mysqladmin [OPTIONS] command [command-option] command . . .

  其中command定义如下:

  create databasename ----------- 创建一个新的数据库

  drop databasename ----------- 删除一个数据库机器所有的表

  extended-stayus ----------- 显示服务器的一个扩展状态消息

  flush-hosts ----------- 刷新所有缓存的主机

  flush-logs ----------- 关闭并重新启用日志记录

  flush-table ----------- 关闭所有的打开的表

  flush-privileges ----------- 刷新授权表

  kill id , id , . . . -----------杀死MySQL线程

  password ----------- 修改MySQL数据库口令

  ping ----------- 检查MySQL是否运行

  processlist ----------- 显示守护进程中的线程列表

  reload ----------- 重新载入授权表

  refresh ----------- 关闭所有表并关闭和重新打开日志文件

  shutdown ----------- 停止MySQL服务

  status ----------- 显示服务器的基本状态消息

  variables -----------列出可用变量

  version -----------显示MySQL的版本信息

  MySQl 是一个基于命令行的客户端管理维护工具,他支持交互和非交互两种模式。分别采用ASCII码和定位分隔符两种形式显示。在交互模式下,用户可以直接在交互命令行中输入sql语句提交给MySQL服务器执行,sql语句要求以“;或”\g”结尾,可以多行续写。

  查看MySQL帮助信息可以使用help命令。

  六.MySQL sql语句

  1. 创建数据库:

  语法:

  CREATE DATABASE [IN NOT EXISTS] db_name;

  2.删除数据库:

  语法:

  DROP DATABASE [IN NOT EXISTS] db_name;

  3.进入数据库:

  语法:

  USE db_name;

  4.查询所有的数据库:

  语法:

  show databases;

  ================================================== ======================== Redhat AS5下安装MySQL5.0 508-02-24 13:45

  分类:Linux

  字号: 大大 中中 小小

  一、引言

  二、安装Mysql

  1、下载MySQL的安装文件

  安装MySQL需要下面两个文件:

  MySQL-server-5.0.9-0.i386.rpm

  MySQL-client-5.0.9-0.i386.rpm

  1)下载地址为:http://dev.mysql.com/downloads/mysql/5.0.html,打开此网页,下拉网页找到“Linux x86 RPM downloads”项,找到“Server”和“Client programs”项,下载需要的上述两个rpm文件。

  2)安装光盘里面也有。

  2、安装MySQL

  rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。

  1)安装服务器端

  在有两个rmp文件的目录下运行如下命令:

  [root@test1 local]# rpm -ivh MySQL-server-5.0.9-0.i386.rpm

  显示如下信息。

  warning: MySQL-server-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5

  Preparing... ########################################### [100%]

  1:MySQL-server ########################################### [100%]

  。。。。。。(省略显示)

  /usr/bin/mysqladmin -u root password 'new-password'

  /usr/bin/mysqladmin -u root -h test1 password 'new-password'

  。。。。。。(省略显示)

  Starting mysqld daemon with databases from /var/lib/mysql

  如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。

  [root@test1 local]# netstat -nat

  Active Internet connections (servers and established)

  Proto Recv-Q Send-Q Local Address Foreign Address State

  tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

  上面显示可以看出MySQL服务已经启动。

  2)安装客户端

  运行如下命令:

  [root@test1 local]# rpm -ivh MySQL-client-5.0.9-0.i386.rpm

  warning: MySQL-client-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5

  Preparing... ########################################### [100%]

  1:MySQL-client ########################################### [100%]

  显示安装完毕。

  用下面的命令连接mysql,测试是否成功。

  三、登录MySQL

  登录MySQL的命令是mysql, mysql 的使用语法如下:

  mysql [-u username] [-h host] [-p[password]] [dbname]

  username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可。

  [root@test1 local]# mysql

  Welcome to the MySQL monitor. Commands end with ; or \g.

  Your MySQL connection id is 1 to server version: 4.0.16-standard

  Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

  mysql>

  出现了“mysql>”提示符,恭喜你,安装成功!

  增加了密码后的登录格式如下:

  mysql -u root -p

  Enter password: (输入密码)

  其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。

  注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。

  四、MySQL的几个重要目录

  MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。

  下面就介绍一下这几个目录。

  1、数据库目录

  /var/lib/mysql/

  2、配置文件

  /usr/share/mysql(mysql.server命令及配置文件)

  3、相关命令

  /usr/bin(mysqladmin mysqldump等命令)

  4、启动脚本

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

  五、修改登录密码

  MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。

  1、命令

  usr/bin/mysqladmin -u root password 'new-password'

  格式:mysqladmin -u用户名 -p旧密码 password 新密码

  2、例子

  例1:给root加个密码123456。

  键入以下命令:

  [root@test1 local]# /usr/bin/mysqladmin -u root password 123456

  注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

  3、测试是否修改成功

  1)不用密码登录

  [root@test1 local]# mysql

  ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

  显示错误,说明密码已经修改。

  2)用修改后的密码登录

  [root@test1 local]#mysql -u root -p

  Enter password: (输入修改后的密码123456)

  Welcome to the MySQL monitor. Commands end with ; or \g.

  Your MySQL connection id is 4 to server version: 4.0.16-standard

  Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

  mysql>

  成功!

  这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。

  六、启动与停止

  1、启动

  MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。

  [root@test1 init.d]# /etc/init.d/mysql start

  2、停止

  /usr/bin/mysqladmin -u root -p shutdown

  3、自动启动

  1)察看mysql是否在自动启动列表中

  [root@test1 local]# /sbin/chkconfig --list

  2)把MySQL添加到你系统的启动服务组里面去

  [root@test1 local]# /sbin/chkconfig – add mysql

  3)把MySQL从启动服务组里面删除。

  [root@test1 local]# /sbin/chkconfig – del mysql

  七、更改MySQL目录

  MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:

  1、home目录下建立data目录

  cd /home

  mkdir data

  2、把MySQL服务进程停掉:

  mysqladmin -u root -p shutdown

  3、把/var/lib/mysql整个目录移到/home/data

  mv /var/lib/mysql /home/data/

  这样就把MySQL的数据文件移动到了/home/data/mysql下

  4、找到my.cnf配置文件

  如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:

  [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

  5、编辑MySQL的配置文件/etc/my.cnf

  为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:

  vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)

  # The MySQL server

  [mysqld]

  port = 3306

  #socket = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)

  socket = /home/data/mysql/mysql.sock (加上此行)

  6、修改MySQL启动脚本/etc/rc.d/init.d/mysql

  最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。

  [root@test1 etc]# vi /etc/rc.d/init.d/mysql

  #datadir=/var/lib/mysql (注释此行)

  datadir=/home/data/mysql (加上此行)

  7、重新启动MySQL服务

  /etc/rc.d/init.d/mysql start

  或用reboot命令重启Linux

  如果工作正常移动就成功了,否则对照前面的7步再检查一下。

  八、MySQL的常用操作

  注意:MySQL中每个命令后都要以分号;结尾。

  1、显示数据库

  mysql>show databases;

  +----------+

  | Database |

  +----------+

  | mysql |

  | test |

  +----------+

  2 rows in set (0.04 sec)

  Mysql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。

  2、显示数据库中的表

  mysql>use mysql;(打开库,对每个库进行操作就要打开此库,类似于foxpro )

  Database changed

  mysql>show tables;

  +-----------------+

  | Tables_in_mysql |

  +-----------------+

  | columns_priv |

  | db |

  | func |

  | host |

  | tables_priv |

  | user |

  +-----------------+

  6 rows in set (0.01 sec)

  3、显示数据表的结构:

  describe 表名;

  4、显示表中的记录:

  select * from 表名;

  例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。

  Select * from user;

  5、建库:

  create database 库名;

  例如:创建一个名字位aaa的库

  mysql> create databases aaa;

  6、建表:

  use 库名;

  create table 表名 (字段设定列表);

  例如:在刚创建的aaa库中建立表name,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段

  use aaa;

  mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);

  可以用describe命令察看刚建立的表结构。

  mysql> describe name;

  +-------+---------+------+-----+---------+-------- --------+

  | Field | Type | Null | Key | Default | Extra |

  +-------+---------+------+-----+---------+-------- --------+

  | id | int(3) | | PRI | NULL | auto_increment |

  | xm | char(8) | YES | | NULL | |

  | xb | char(2) | YES | | NULL | |

  | csny | date | YES | | NULL | |

  +-------+---------+------+-----+---------+-------- --------+

  7、增加记录

  例如:增加几条相关纪录。

  mysql> insert into name values('','张三','男','1971-10-01');

  mysql> insert into name values('','白云','女','1972-05-60');

  可用select命令来验证结果。

  mysql> select * from name;

  +----+------+------+------------+

  | id | xm | xb | csny |

  +----+------+------+------------+

  | 1 | 张三 | 男 | 1971-10-01 |

  | 2 | 白云 | 女 | 1972-05-60 |

  +----+------+------+------------+

  8、修改纪录

  例如:将张三的出生年月改为1971-01-10

  mysql> update name set csny='1971-01-10' where xm='张三';

  9、删除纪录

  例如:删除张三的纪录。

  mysql> delete from name where xm='张三';

  10、删库和删表

  drop database 库名;

  drop table 表名;

  九、增加MySQL用户

  格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"

  例1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:

  mysql>grant select,insert,update,delete on *.* to user_1@"%" Identified by "123";

  例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。

  例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过 MYSQL主机来操作aaa库。

  mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";

  用新增的用户如果登录不了MySQL,在登录时用如下命令:

  mysql -u user_1 -p -h 192.168.113.50 (-h后跟的是要登录主机的ip地址)

  十、备份与恢复

  1、备份

  例如:将上例创建的aaa库备份到文件back_aaa中

  [root@test1 root]# cd /home/data/mysql (进入到库目录,本例库已由val/lib/mysql转到/home/data/mysql,见上述第七部分内容)

  [root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa

  2、恢复

  [root@test mysql]# mysql -u root -p ccc < back_aaa

  通过rpm卸载mysql

  rpm -qa|grep -i mysql #查看已经安装的mysql相关包

  rpm -ev package_name #package_name包名 比如:mysql-server-5.0.51b-1.el5

  卸载后/var/lib/mysql中的/etc/my.cnf会重命名为my.cnf.rpmsave,/var/log/mysqld.log会重命名为/var/log/mysqld.log.rpmsave,如果确定没用后就手工删除

  <

阅读(796) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~