一引言
想使用Linux已经很长时间了由于没有硬性任务一直也没有系统学习近日由于工作需要必须使用Linux下的MySQL本以为有Windows下使用SQL Server的经验觉得在Linux下安装MySql应该是易如反掌的事可在真正安装和使用MySQL时走了很多弯路遇见很多问题毕竟Linux 和Windows本身就有很大区别为了让和我一样的初学者在学习的过程中少走弯路尽快入门写了此文希望对您有所帮助本文的Linux环境是 Red Hat MySQL是
二安装Mysql
下载MySQL的安装文件
安装MySQL需要下面两个文件
MySQLserverirpm
MySQLclientirpm
下载地址为/downloads/l打开此网页下拉网页找到Linux x RPM downloads项找到Server和Client programs项下载需要的上述两个rpm文件
安装MySQL
rpm文件是Red Hat公司开发的软件安装包rpm可让Linux在安装软件包时免除许多复杂的手续该命令在安装时常用的参数是 –ivh 其中i表示将安装指定的rmp软件包V表示安装时的详细信息h表示在安装期间出现#符号来显示目前的安装过程这个符号将持续到安装完成后才停止
)安装服务器端
在有两个rmp文件的目录下运行如下命令
[root@test local]# rpm ivh MySQLserverirpm
显示如下信息
warning: MySQLserverirpm: V DSA signature: NOKEY key ID ef
Preparing########################################### [%]
:MySQLserver########################################### [%]
(省略显示)
/usr/bin/mysqladmin u root password \newpassword\
/usr/bin/mysqladmin u root h test password \newpassword\
(省略显示)
Starting mysqld daemon with databases from /var/lib/mysql
如出现如上信息服务端安装完毕测试是否成功可运行netstat看Mysql端口是否打开如打开表示服务已经启动安装成功Mysql默认的端口是
[root@test local]# netstat nat
Active Internet connections (servers and established)
Proto RecvQ SendQ Local AddressForeign AddressState
tcp ::*LISTEN
上面显示可以看出MySQL服务已经启动
)安装客户端
运行如下命令
[root@test local]# rpm ivh MySQLclientirpm
warning: MySQLclientirpm: V DSA signature: NOKEY key ID ef
Preparing########################################### [%]
:MySQLclient########################################### [%]
显示安装完毕
用下面的命令连接mysql测试是否成功
三登录MySQL
登录MySQL的命令是mysql mysql 的使用语法如下
mysql [u username] [h host] [p[password]] [dbname]
username 与 password 分别是 MySQL 的用户名与密码mysql的初始管理帐号是root没有密码注意这个root用户不是Linux的系统用户MySQL默认用户是root由于初始没有密码第一次进时只需键入mysql即可
[root@test local]# mysql
Welcome to the MySQL monitorCommands end with ; or \\g
Your MySQL connection id is to server version: 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/initd/mysql不是一个文件
四MySQL的几个重要目录
MySQL安装完成后不象SQL Server默认安装在一个目录它的数据库文件配置文件和命令文件分别在不同的目录了解这些目录非常重要尤其对于Linux的初学者因为 Linux本身的目录结构就比较复杂如果搞不清楚MySQL的安装目录那就无从谈起深入学习
下面就介绍一下这几个目录
数据库目录
/var/lib/mysql/
配置文件
/usr/share/mysql(mysqlserver命令及配置文件)
相关命令
/usr/bin(mysqladmin mysqldump等命令)
启动脚本
/etc/rcd/initd/(启动脚本文件mysql的目录)
五修改登录密码
MySQL默认没有密码安装完毕增加密码的重要性是不言而喻的
命令
usr/bin/mysqladmin u root password \newpassword\
格式mysqladmin u用户名 p旧密码 password 新密码
例子
例给root加个密码
键入以下命令
[root@test local]# /usr/bin/mysqladmin u root password
注因为开始时root没有密码所以p旧密码一项就可以省略了
测试是否修改成功
)不用密码登录
[root@test local]# mysql
ERROR : Access denied for user: \root@localhost\ (Using password: NO)
显示错误说明密码已经修改
)用修改后的密码登录
[root@test local]# mysql u root p
Enter password: (输入修改后的密码)
Welcome to the MySQL monitorCommands end with ; or \\g
Your MySQL connection id is to server version: standard
Type \help;\ or \\\h\ for help Type \\\c\ to clear the buffer
mysql>
成功!
这是通过mysqladmin命令修改口令也可通过修改库来更改口令
六启动与停止
启动
MySQL安装完成后启动文件mysql在/etc/initd目录下在需要启动时运行下面命令即可
[root@test initd]# /etc/initd/mysql start
停止
/usr/bin/mysqladmin u root p shutdown
自动启动
)察看mysql是否在自动启动列表中
[root@test local]#/sbin/chkconfig –list
)把MySQL添加到你系统的启动服务组里面去
[root@test local]#/sbin/chkconfig– addmysql
)把MySQL从启动服务组里面删除
[root@test local]#/sbin/chkconfig– delmysql
七更改MySQL目录
MySQL默认的数据文件存储目录为/var/lib/mysql假如要把目录移到/home/data下需要进行下面几步
home目录下建立data目录
cd /home
mkdir data
把MySQL服务进程停掉
mysqladmin u root p shutdown
把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql/home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下
找到f配置文件
如果/etc/目录下没有f配置文件请到/usr/share/mysql/下找到f文件拷贝其中一个到/etc/并改名为f)中命令如下
[root@test mysql]# cp /usr/share/mysql/f/etc/f
编辑MySQL的配置文件/etc/f
为保证MySQL能够正常工作需要指明mysqlsock文件的产生位置 修改socket=/var/lib/mysql/mysqlsock一行中等号右边的值为/home/mysql/mysqlsock 操作如下
f(用vi工具编辑f文件找到下列数据修改之)
# The MySQL server
[mysqld]
port=
#socket= /var/lib/mysql/mysqlsock(原内容为了更稳妥用#注释此行)
socket= /home/data/mysql/mysqlsock(加上此行)
修改MySQL启动脚本/etc/rcd/initd/mysql
最后需要修改MySQL启动脚本/etc/rcd/initd/mysql把其中datadir=/var/lib/mysql一行中等号右边的路径改成你现在的实际存放路径home/data/mysql
[root@test etc]# vi/etc/rcd/initd/mysql
#datadir=/var/lib/mysql(注释此行)
datadir=/home/data/mysql(加上此行)
重新启动MySQL服务
/etc/rcd/initd/mysqlstart
或用reboot命令重启Linux
如果工作正常移动就成功了否则对照前面的步再检查一下
八MySQL的常用操作
注意MySQL中每个命令后都要以分号结尾
显示数据库
mysql> show databases;
++
| Database |
++
| mysql|
| test|
++
rows in set ( sec)
Mysql刚安装完有两个数据库mysql和testmysql库非常重要它里面有MySQL的系统信息我们改密码和新增用户实际上就是用这个库中的相关表进行操作
显示数据库中的表
mysql> use mysql; (打开库对每个库进行操作就要打开此库类似于foxpro )
Database changed
mysql> show tables;
++
| Tables_in_mysql |
++
| columns_priv|
| db|
| func|
| host|
| tables_priv|
| user|
++
rows in set ( sec)
显示数据表的结构
describe 表名;
显示表中的记录
select * from 表名;
例如显示mysql库中user表中的纪录所有能对MySQL用户操作的用户都在此表中
Select * from user;
建库
create database 库名;
例如创建一个名字位aaa的库
mysql> create databases aaa;
建表
use 库名
create table 表名 (字段设定列表)
例如在刚创建的aaa库中建立表name表中有id(序号自动增长)xm(姓名)xb(性别)csny(出身年月)四个字段
use aaa;
mysql> create table name (id int() auto_increment not null primary key xm char()xb char()csny date);
可以用describe命令察看刚建立的表结构
mysql> describe name;
+++++++
| Field | Type| Null | Key | Default | Extra|
+++++++
| id| int()|| PRI | NULL| auto_increment |
| xm| char() | YES|| NULL||
| xb| char() | YES|| NULL||
| csny| date| YES|| NULL||
+++++++
增加记录
例如增加几条相关纪录
mysql> insert into name values(\\\张三\\男\\\);
mysql> insert into name values(\\\白云\\女\\\);
可用select命令来验证结果
mysql> select * from name;
+++++
| id | xm| xb| csny|
+++++
| | 张三 | 男| |
| | 白云 | 女| |
+++++
修改纪录
例如将张三的出生年月改为
mysql> update name set csny=\\ where xm=\张三\;
删除纪录
例如删除张三的纪录
mysql> delete from name where xm=\张三\;
删库和删表
drop database 库名;
drop table 表名
九增加MySQL用户
格式grant select on 数据库* to 用户名@登录主机 identified by 密码
例增加一个用户user_密码为让他可以在任何主机上登录并对所有数据库有查询插入修改删除的权限首先用以root用户连入MySQL然后键入以下命令
mysql> grant selectinsertupdatedelete on ** to user_@% Identified by ;
例增加的用户是十分危险的如果知道了user_的密码那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了解决办法见例
例增加一个用户user_密码为让此用户只可以在localhost上登录并可以对数据库aaa进行查询插入修改删除的操作(localhost指本地主机即MySQL数据库所在的那台主机)这样用户即使用知道user_的密码他也无法从网上直接访问数据库只能通过 MYSQL主机来操作aaa库
mysql>grant selectinsertupdatedelete on aaa* to user_@localhost identified by ;
用新增的用户如果登录不了MySQL在登录时用如下命令
mysql u user_ ph (h后跟的是要登录主机的ip地址)
十备份与恢复
备份
例如将上例创建的aaa库备份到文件back_aaa中
[root@test root]# cd/home/data/mysql(进入到库目录本例库已由val/lib/mysql转到/home/data/mysql见上述第七部分内容)
[root@test mysql]# mysqldump u root p opt aaa > back_aaa
恢复
[root@test mysql]# mysql u root p ccc < back_aaa