MySQL是一个真正的多线程,多用户的SQL数据库服务,凭借其高性能,高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。
一.mysql的编译安装
为了避免发生端口冲突,程序冲突等现象,建议先查询mysql软件的安装情况,确认没有以rpm 方式安装的mysql-server,mysql软件包,否则建议将其卸载。
rpm –q mysql-server mysql
rpm –ivh ncurses-devel-5.7-3.20090208.e16_64.rpm //安装光盘自带的ncurses-devel包
mysql 5.5需要cmake编译安装,所以先安装cmake包
tar zxfcmake-2.8.6.tar.gz
cd cmake-2.8.6
./configure&& gmake && gmake install
创建运行用户
groupadd mysql
useradd –M –s/sbin/nologin mysql –g mysql
解包
tar zxfmysql-5.5.22.tar.gz -C /usr/src
cd/usr/src/mysql-5.5.22
配置,编译并安装
cmake –DCMAKE_INSTALL_PREFIX=/usr/local/mysql–DSYSCONFDIR=/etc –DDEFAULT_CHARSET=utf8 –DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHATSETS=all && make && make install
上述配置命令中,各选项的含义如下:
–DCMAKE_INSTALL_PREFIX:指定将mysql安装到某目录下
–DSYSCONFDIR:指定初始化参数文件目录
–DDEFAULT_CHARSET:指定默认使用的字符集编码,如utf8
–DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci适用于UTF-8字符集的通用规则
-DWITH_EXTRA_CHATSETS:指定额外支持的其他字符集编码
二.安装后的其他调整
1.对数据库目录进行权限设置
chown–R mysql:mysql /usr/local/mysql
2.建立配置文件
cp/usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf
3.初始化数据库
为了能够正常使用mysql数据库系统,应以运行用户mysql的身份执行初始化脚本mysql_install_db,指定数据库存放目录。
执行如下命令:
/usr/local/mysql/scripts/mysql_insatll_db --user=mysql --basedir=/usr/local/mysql
- -datadir=/usr/local/mysql/data
4.设置变量环境
echo“PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
. /etc/profile
三.添加系统服务
cp/usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld
chmod+x /etc/init.d/mysqld
chkconfig --add mysqld
servicemysqld start
netstat–anpt |grep mysqld //端口号3306(可以在/etc/my.cnf中[mysql]配置段的“port=3306”修改端口)
四.登陆到mysql服务器
mysqladmin –u root password 123456 //更改数据库密码为123456
mysql -u root -p //使用-p进行密码效验
五.执行mysql操作语句
1.查看数据库服务器的日志文件信息
SHOWMASTER LOGS;
2.查看当前服务器中有哪些库
SHOWDATABASES;
3.查看当前使用的库中有哪些表
USE test; //切换到test库中
SHOW TABLES;
4.查看表的结构
DESCRIBEuser;
5.创建新的库
CREATEDATABASE auth;
6.创建新的表
CREATE TABLE 表名(字段1名称类型,字段2 类型,……,PRIMARY KEY (主键名));
CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT ‘’, PRIMARY KEY (user_name)); //创建一个users表 “用户名”为不超过16个字节的字
符串,不能为空,后面密码段类似。
7.删除一个数据表
DROP TABLE auth.users;
8.删除一个数据库
DROP TABLE auth
9.向表中插入数据记录
INSERT INTO 表名(字段1,字段2……,) VALUES(字段1的值,….);
INSERT INTO users(user_name,user_passwd) VALUES(‘zhangsan’, PASSWORD(‘123456’));
10.查询数据记录
SELECT 字段名1,字段名2…….., FROM 表名 WHERE 条件表达式
Select * from auth.users //查看auth库中users表的所有记录
SELECT user_name,user_passwd FROM auth.users whereuser_name=’zhangsan’; // 查询users表中用户名为zhangsan的记录
11.修改数据记录
UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] WHERE 条件表达式
UPDATE auth.users SET user_passwd=PASSWORD(‘’) WHEREuser_name=’lisi’;//吧users
表中lisi的密码改为空
12.删除数据记录
DELETE FROM 表名 WHERE 条件表达式
DELETE FROM auth.users WHERE user_name=’lisi’ //删除lisi的记录
13.授予权限
GRANT 权限列表 ON 库名.表名 TO 用户名@来源地址 [TDENTIFIED BY ‘密码’]
a.权限列表:用于列出授权使用的各种数据库操作。
b.库名.表名:用于指定授权操作的库和表的名称。
c.用户名@来源地址:用于指定用户名和允许访问的客户机地址
d TDENTIFIED BY:用于 设置用户连接数据库是所使用的密码字符串。
GRANT select ONauth.* TO ‘carey’@’localhost’ TDENTIFIEDBY ‘123456’;
14.查看权限
SHOW GRANTS FOR 用户名@来源地址
SHOW GRANTS FOR ‘carey’@‘localhost’;
15.撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址
REVOKE all ON auth.*FROM ‘carey’@‘localhost‘;
16.备份数据库
A.导出指定库中的部分表。
mysqldump [ 选项] 库名[表名1] [表名2].。。。。> /备份路径/备份文件名
mysqldump –u root -pmysql user > mysql-user.sql
B.mysqldump [ 选项] - –databases [库名1] [库名2].。。。。> /备份路径/备份文件名
mysqldump –u root -p--databases auth >auth.sql
C.mysqldump [ 选项] --all –databases > /备份路径/备份文件名
D.mysqldump –u root –p --opt –all-databases> all-databases.sql
17.恢复数据库
mysql [选项] [库名] [表名] < /备份路径/备份文件名
mysql –u root -p test < mysql-user.sql