mysql数据库的安装步骤
mysql数据库的安装步骤
Redhat6.5
1、准备工作
卸载使用rpm包安装的mysql-server、mysql软件包
安装自带的ncurses-devel包
rpm -ivh /mnt/Packages/ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
① 解压cmake包
tar zxf cmake-2.8.6.tar.gz
[root@localhost cmake-2.8.6]# cd cmake-2.8.6
② 安装cmake包
[root@localhost cmake-2.8.6]# ./configure && gmake && gmake install
2、源码编译及安装
①创建运行用户
[root@localhost cmake-2.8.6]# groupadd mysql
[root@localhost cmake-2.8.6]# useradd -M -s /sbin/nologin mysql -g mysql
②解压mysql包释放到/usr/src目录下并切换到展开后的源码目录
tar zxf mysql-5.5.22.tar.gz -C /usr/src
cd /usr/src/mysql-5.5.22/
③配置
可能会用到多种字符集的网页,相应地数据库系统也应该支持不同的字符集编码,配置中将默认的字符集编码设置为utf8并添加其他字符集支持
[root@localhost mysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
----选项含义:
-DCMAKE_INSTALL_PREFIX:指定将mysql数据库程序安装到某目录
-DSYSCONFDIR:指定初始化参数文件目录
-DDEFAULT_CHARSET:指定使用默认的字符集编码,如utf8
-DDEFAULT_COLLATION:指定默认使用的字符集编码校对规则,utf8_general_ci 是适用于UTF-8字符集编码的通用规则。
-DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。
④编译并安装 make && make install
3、安装后的其他调整
①对数据库目录进行权限设置
[root@localhost mysql-5.5.22]# chown -R mysql:mysql /usr/local/mysql
②建立配置文件
在mysql源码目录中的support—file文件下,提供了适合不同负载数据库的样本配置文件。如果不确定数据库同学的应用规模,一般选择my-medium.cnf文件即可,该文件能够满足大多数启用的中单应用需求
根据以下参考内容建立mysql系统的/etc/my.cnf配置文件
[root@localhost mysql-5.5.22]# rm -rf /etc/my.cnf
[root@localhost mysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf
③初始化数据库
为了能够正常使用mysql数据库系统,应以运行用户mysql身份执行初始化监本mysql_intall_db,指定数据库存放目录等。
[root@localhost mysql-5.5.22]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
④设置变量环境
为了方便在任何目录下使用mysql命令需要在/etc/profile设置环境变量
[root@localhost mysql-5.5.22]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@localhost mysql-5.5.22]# ./etc/profile 或 source /etc/profile //立即生效
4、添加系统服务
若希望添加mysql系统服务,以通过chkconfig进行管理,可以直接使用源码包中提供的服务脚本。找到support-files文件下的mysql。server脚本文件,
将其复制到/etc/rc.d/init.d目录下,并改名为mysqld,然后再设置执行权限,通过chkconfig命令将其添加为mysqld系统服务。
[root@localhost mysql-5.5.22]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@localhost mysql-5.5.22]# chmod +x /etc/rc.d/init.d/mysqld
[root@localhost mysql-5.5.22]# chkconfig --add mysqld
[root@localhost mysql-5.5.22]# service mysqld start
查看mysql的运行状态: 端口号:3306
[root@localhost mysql-5.5.22]# netstat -anpt | grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 21921/mysqld
二、访问mysql数据库
1、登录到mysql服务器
经过安装后的初始化过程,mysql数据库的默认用户名为root密码为空,若以root登录数据库执行以下操作
mysql -u root -p
mysql>
2、执行mysql操作语句:show master logs; 可查看当前数据库访问的日志文件信息
3、退出mysq可执行quit或exit
三、MySQL的操作语句:
1、查看
①、查看当前服务器中有哪些库:
mysql> show databases;
②、查看当前使用的库中有哪些表:先使用use语句切换到所使用的库,再查看
mysql> use mysql;
Database changed
mysql> show tables;
MySQL数据库的数据文件存放在/usr/local/mysql/data目录下,每个数据库对应一个子目录用于存储数据表文件。一个数据表对应3个文件后缀名为 .frm 、.myd和 .myi
③、查看表结构:DESCRIBE语句用于显示表的结构需要指定 “库名.表名”
mysql> desc mysql.user; //查看mysql库的user表的结构
2、创建及删除库和表
①创建新的库
mysql> create database auth; //创建一个auth库
Query OK, 1 row affected (0.00 sec)
②创建新的表:需要指定表名作为参数,并定义该表所使用的各字段。
mysql> use auth;
mysql> create table users (user_name char(16) not null,user_passwd char(48) default '', primary key (user_name));
//在auth库中创建一个users表并插入字段user_name(不超过16字节且不为空),user_passwd(不超过48字节)默认为空,并把user_name设为主键
Query OK, 0 rows affected (0.02 sec)
mysql> show tables;
+----------------+
| Tables_in_auth |
+----------------+
| users |
+----------------+
1 row in set (0.00 sec)
③删除表和数据库
mysql> drop table auth.users; //删除auth库中的users表
mysql> drop database auth; //删除auth数据库
3、管理表中的数据记录
①插入数据记录:insert into
mysql> insert into users(user_name,user_passwd) values('lisi',password('1234')); //向auth库中users表插入一条记录,用户名为lisi,密码为1234
Query OK, 1 row affected (0.01 sec)
②查询数据记录:select
mysql> select * from users; //查询users表中所有(*)内容
+-----------+-------------------------------------------+
| user_name | user_passwd |
+-----------+-------------------------------------------+
| lisi | *A4B6157319038724E3560894F7F932C8886EBFCF |
+-----------+-------------------------------------------+
1 row in set (0.00 sec)
③修改数据记录 update
mysql> update auth.users set user_passwd=password('123.com')where user_name='lisi';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
④修改密码:
用于访问mysql数据库的各种用户信息都保存在mydql库的user表中,可直接修改其中的数据记录
mysql> update mysql.user set password=password('1234') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
也可以在linux命令行下使用mysqladmin工具设置密码,验证原密码后可直接将数据库用户密码设置为 '123.com'
mysql> mysqladmin -u root -p password '123.com'
Enter password:
⑤、删除数据记录:delete
mysql> delete from auth.users where user_name='lisi';
4、授权: grant
①授予权限:GRANT select ON auth.* TO 'xiaosan'@'localhost' IDENTIFIED BY '123456';
②查看权限:show grants 通过FOR子句可指定查看的用户对象
mysql> show grants for 'xiaosan'@'localhost';
+----------------------------------------------------------------------------------------------------------------+
| Grants for xiaosan@localhost |
+----------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'xiaosan'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
| GRANT SELECT ON `auth`.* TO 'xiaosan'@'localhost' |
+----------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
③撤销权限:revoke
revoke all ON auth.* FROM 'xiaosan'@'localhost';
四、数据库的备份与恢复
三种格式:(一)导出指定库中的部分表:
mysqldump 【选项】 库名 【表名1】【表名2】... > /备份路径/备份文件名
(二)导出一个或多个完整库(包括其中所有的表):
mysqldump 【选项】--databases 库名1 【库名2】 ... > /备份路径/备份文件名
(三)备份MySQL服务器中所有
mysqldump 【选项】--all-databases > /备份路径/备份文件名
1、备份数据库
(1)执行导出操作
①[root@localhost ~]# mysqldump -u root -p mysql user > mysql-user.sql ///将mysql库中的user表导出为mysql-user.sql文件
Enter password: ///输入root密码
②[root@localhost ~]# mysqldump -u root -p --databases auth > auth.sql ///将整个auth库导出为auth.sql文件
Enter password: ///输入root密码
③若需要备份整个mysql服务器中所有库应使用格式(三)当导出数据量较大时,可以添加"--opt"选项以优化执行速度
例如:mysqldump -u root -p --opt --all-databases > /all-data.sql ///将创建all-data.sql备份文件包含所有库
(2)查看备份内容
[root@localhost ~]# grep -v "^--" auth.sql | grep -v "^/" | grep -v "^$" 或使用 egrep -v "^--|^/|^$" auth.sql
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `auth` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `auth`;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`user_name` char(16) NOT NULL,
`user_passwd` char(48) DEFAULT '',
PRIMARY KEY (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
LOCK TABLES `users` WRITE;
INSERT INTO `users` VALUES ('lisi','*AC241830FFDDC8943AB31CBD47D758E79F7953EA');
UNLOCK TABLES;
2、恢复数据库
① [root@localhost ~]# mysql -u root -p mysql < mysql-user.sql ///从备份文件mysql-user.sql中将user表导入mysql库中
Enter password:
② [root@localhost ~]# mysql -u root -p < auth.sql ///从备份文件auth.sql恢复auth库
Enter password: