图片 11

MySQL数据库的安装与基本操作

实验要求:

概述:

MySQL 是一个真正的多线程,多用户的SQL数据库服务,凭借其高性能、高可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。目前由Oracle公司开发和维护

官方站点:

1.MySQL的特点:

多线程、多用户

基于C/S(客户端/服务器)架构

简单易用、查询速度快

安全可靠

Redhat6.5

1、安装mysql源码包,并做相关的配置和优化路径,启动服务。

Mysql安装

 

 

步骤:

2.准备工作

操作系统

     IP地址

      主机名

    软件包列表

CentOS 6.5_x84_64

 192.168.6.10

     Crushlinux

  mysql-5.5.22.tar.gz  

 

 

为了避免发生端口冲突,程序冲突,建议先查询确认没有使用RPM方式安装mysql-server、mysql

[root@crushlinux ~]# rpm -q mysql-server mysql
package mysql-server is not installed
mysql-5.1.71-1.el6.x86_64

1、准备工作

1)先查询MySQL软件的安装情况,如果有建议将其卸载,

3.安装cmake

mysql5.5以上的版本都需要cmake编译。而不是./configure,所以需要安装cmake

[root@crushlinux/]#tar xf  cmake-2.8.6.tar.gz
[root@crushlinux/]#cd cmake-2.8.6
[root@crushlinuxcmake-2.8.6]# ./configure
[root@crushlinuxcmake-2.8.6]# gmake && gmake install

或者是

[root@crushlinux/]#yum -y install cmake

卸载使用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

图片 1

4.源码编译及安装

创建mysql用户

[root@crushlinuxcmake-2.8.6]# groupadd mysql
[root@crushlinuxcmake-2.8.6]# useradd -M  -s /sbin/nologin -g mysql mysql

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

2)安装光盘自带的ncurses-devel包。

5.解包,编译、安装

 

[root@crushlinux/]# tar xf mysql-5.5.22.tar.gz
[root@crushlinux/]# cd mysql-5.5.22
[root@crushlinuxmysql-5.5.22]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all

-DCMAKE_INSTALL_PREFIX: 指定数据库安装目录
-DSYSCONFDIR=/etc :指定配置文件目录
-DDEFAULT_CHARSET:指定默认使用的字符集编码。如utf8
-DDEFAULT_COLLATION=utf8_general_ci:设定默认排序规则(utf8_general_ci快速/utf8_unicode_ci准确)
-DEXTRA_CHARSETS=all:启用额外的字符集类型(默认为all)

如下图表示编译完成

图片 2

二、访问mysql数据库
1、登录到mysql服务器
经过安装后的初始化过程,mysql数据库的默认用户名为root密码为空,若以root登录数据库执行以下操作
mysql -u root -p
mysql>
2、执行mysql操作语句:show master logs;
可查看当前数据库访问的日志文件信息
3、退出mysq可执行quit或exit

 图片 3

6.安装后的其他调整

配置

[root@crushlinux mysql-5.5.22]# make && make install

三、MySQL的操作语句:

3)MySQL5.5需要cmake编译安装,导入光盘,安装cmake包。

7.权限调整

 

[root@crushlinuxmysql-5.5.22]# chown -R mysql:mysql /usr/local/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表的结构

图片 4

8.建立配置文件

 

[root@crushlinuxmysql-5.5.22]# rm -rf /etc/my.cnf
[root@crushlinuxmysql-5.5.22]# cp support-files/my-medium.cnf /etc/my.cnf

 

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数据库

4)创建数据库专门的运行用户,此用户不需要直接登录到系统,可以不创建宿主文件夹。

9.初始化数据库

 

[root@crushlinuxmysql-5.5.22]# cd /usr/local/mysql/
[root@crushlinuxmysql]# scripts/mysql_install_db --user=mysql --user=mysql  --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

 

图片 5

初始化完成!

如果报pid错误,则为初始化失败,将usr/local/mysql/data目录下的文件全部删除

 

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’;

图片 6

10.设置软连接

为了在任何目录下都能使用mysql命令。可以创建软连接

[root@crushlinuxmysql]# ln -s /usr/local/mysql/bin/* /usr/local/bin/

4、授权: grant
①授予权限:GRANT select ON auth.* TO ‘xiaosan’@’localhost’ IDENTIFIED
BY ‘123456’;

5)mysql的解包、配置、编译和安装。

11.将mysql添加为系统服务

[root@crushlinux/]# cd mysql-5.5.22/support-files
[root@crushlinuxsupport-files]# cp mysql.server /etc/init.d/mysqld
[root@crushlinuxsupport-files]# chmod +x /etc/init.d/mysqld
[root@crushlinuxsupport-files]# chkconfig --add mysqld

②查看权限: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’;

图片 7

12. 启动mysql服务

[root@crushlinuxsupport-files]# service mysqld start
Starting MySQL...                                      [确定]
[root@crushlinuxsupport-files]#  netstat -antp |grep mysqld
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      21692/mysqld    

登陆验证

 [root@crushlinux/]# mysql
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
mysql搭建完成

四、数据库的备份与恢复
三种格式:(一)导出指定库中的部分表:
mysqldump 【选项】 库名 【表名1】【表名2】… > /备份路径/备份文件名

6)对数据库目录进行权限设置,以及建立配置文件。

实验部分

(二)导出一个或多个完整库(包括其中所有的表):
mysqldump 【选项】–databases 库名1 【库名2】 … >
/备份路径/备份文件名

图片 8

1.登录到mysql服务器

 [root@crushlinux/]# mysql -u root       //-u:指定认证用户

在有密码的情况下使用:

 [root@crushlinux/]# mysql -u root -p    //-p:指定密码登陆
Enter password: 

 -h 指定主机

  -P 指定端口

(三)备份MySQL服务器中所有
mysqldump 【选项】–all-databases > /备份路径/备份文件名

7)初始化数据库

1.设置数据库用户的密码

 

[root@crushlinux~]#mysqladmin –u root passwd “123456”

 

1、备份数据库
(1)执行导出操作
①[root@localhost ~]# mysqldump -u root -p mysql user >
mysql-user.sql ///将mysql库中的user表导出为mysql-user.sql文件
Enter password: ///输入root密码

图片 9

2.执行mysql操作语句

每一句mysql语句以‘;’表示结束

 

②[root@localhost ~]# mysqldump -u root -p –databases auth >
auth.sql ///将整个auth库导出为auth.sql文件
Enter password: ///输入root密码

8)设置环境变量,并使用命令. /etc/profile
立即生效。(注:点后面有空格)

3.查看当前数据库服务的日志文件信息–show master logs

 mysql> show master logs;
  +------------------+-----------+
  | Log_name         | File_size |
 +------------------+-----------+
  | mysql-bin.000001 |     27314 |
  | mysql-bin.000002 |   1031892 |
  | mysql-bin.000003 |       107 |
  +------------------+-----------+
  3 rows in set (0.00 sec)

③若需要备份整个mysql服务器中所有库应使用格式(三)当导出数据量较大时,可以添加”–opt”选项以优化执行速度
例如:mysqldump -u root -p –opt –all-databases > /all-data.sql
///将创建all-data.sql备份文件包含所有库

图片 10

4.退出“mysql>”操作环境–exit,quit,ctrl+C

 

 mysql> exit
  Bye

(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;

9)添加为系统服务,并启动服务,查看其运行状态。

5.查看mysql版本–select version ()

select version ();
  mysql> select version();
  +------------+
  | version()  |
  +------------+
  | 5.5.22-log |
  +------------+
  1 row in set (0.02 sec)

2、恢复数据库
① [root@localhost ~]# mysql -u root -p mysql < mysql-user.sql
///从备份文件mysql-user.sql中将user表导入mysql库中
Enter password:

图片 11

6.查看当前服务器中有哪些库—–show databases

 mysql> show databases;
  +--------------------+
  | Database           |
  +--------------------+
  | information_schema |  保证兼容性,mysql运行当中位于内存中的信息,关机后是空的
  | mysql              |
  | performance_schema |
  | test               |
  +--------------------+
  4 rows in set (0.24 sec)

② [root@localhost ~]# mysql -u root -p < auth.sql
///从备份文件auth.sql恢复auth库
Enter password:

2、将数据库默认的root用户密码改为123456

7.mysql> USE mysql;   //切换数据库

 

步骤:修改密码并登陆

8.查看当前使用的库中有哪些表—-show tables,或者 select databaese();

mysql> show tables;
  +---------------------------+
  | Tables_in_mysql           |
  +---------------------------+
  | columns_priv              |
  | db                        |
  | event                     |
  | func                      |
  | general_log               |
  | help_category             |
  | help_keyword              |
  | help_relation             |
  | help_topic                |
  | host                      |
  | ndb_binlog_index          |
  | plugin                    |
  | proc                      |
  | procs_priv                |
  | proxies_priv              |
  | servers                   |
  | slow_log                  |
  | tables_priv               |
  | time_zone                 |
  | time_zone_leap_second     |
  | time_zone_name            | 
  | time_zone_transition      |
  | time_zone_transition_type |
  | user                      |
  +---------------------------+
  24 rows in set (0.00 sec)