Mysql(手动编译详细思路,以及增删改查,授权,备份还原)

1:查看是否冗余软件 把系统自带mysql删除

2:下载源码,建目录

3:挂共享解压缩安装目录,进源码包 

4:配置

5:编译

6:安装

7:增加服务启动项

8:初始化

9:启动

10:数据库的基本操作 增删改查

11:授权

12:备份以及还原

13:脚本配置文件附解释

第一步:rpm -qa | grep mysql

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_配置文件

第二步:ftp://ftp.easynet.be/mysql/Downloads   //下载地址

useradd  mysql -s /sbin/nologin       //加用户指定不能登录系统

mkdir  /usr/local/mysql             //建目录文件夹

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_防火墙_02

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_防火墙_03

 

第三步:挂共享 解压缩源码包

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_登录系统_04

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_配置文件_05

关闭防火墙

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_防火墙_06

 

[root@hao media]# tar zxvf mysql-5.5.24.tar.gz -C /usr/src/     //解压缩

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_登录系统_07

开始配置,注意:这个版本的数据库 没有configure  只有cmake

所以要确定cmake 这个软件有没有安装

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_配置文件_08

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_数据库 Mysql _09

cmake  \                  

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   //指定目录

-DMYSQL_DATADIR=/home/mysql/ \         //指定数据目录

-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \     这个程序也必须有后面都是固定参数,网上很多大神都写出来的 就不做解释了

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DDEFAULT_CHARSET=utf8 \       utf编码

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DWITH_SSL=system \

-DMYSQL_TCP_PORT=3306

-DWITH_SSL=bundled

 

如果参数错了 重新加入 并且 把配置缓存文件删除rm -f ./CMakeCache.txt

bison ncurses-devel 2个包必须装 否则也会报错 经验总结!

 

开始漫长的等待

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_下载地址_10

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_配置文件_11

然后make_install 

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_登录系统_12

漫长等待后 终于安装完!

chown -R mysql.mysql /usr/local/mysql

属主属组权限

export PATH=$PATH:/usr/local/mysql/bin/    //修改环境变量

 

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_数据库 Mysql _13

cp support-files/my-medium.cnf /etc/my.cnf    //复制配置文件

cp support-files/mysql.server /etc/init.d/mysqld   //加入服务

chmod 755 /etc/init.d/mysqld       权限

chkconfig --add /etc/init.d/mysqld  加入mysqld服务

chkconfig  mysqld --level 235 on  修改开机启动项

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_登录系统_14

ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock  软连接

/usr/local/mysql/scripts/mysql_install_db \     初始化

--user=mysql \

--ldata=/var/lib/mysql \

--basedir=/usr/local/mysql \

--datadir=/home/mysql

vim  /etc/init.d/mysqld   修改配置文件 

basedir=/usr/local/mysql      基本目录

datadir=/home/mysql       数据目录

 

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_数据库 Mysql _15

service mysqld start    

netstat -tnl | grep 3306   查看 端口

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_防火墙_16

mysql -u root //登录数据库

 

-------查看命令----------

mysql> show databases; 

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_下载地址_17

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_配置文件_18

mysql> use test;

mysql> show tables;

mysql> describe user; //查看表内容

 

------------查询命令----------

 SELECT 字段1,字段名2 FROM 表名 WHERE 条件表达式

 

mysql> SELECT user,host,password FROM mysql.user WHERE user='';

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_下载地址_19

mysql> select * from users;

 

----------新增命令-----------

CREATE TABLE 表名(字段1名称 类型,字段二名称 类型,PRIMARY KEY(主键名)

 

mysql>CREATE DATABASE benet;  创建

mysql>use benet;

mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY 

KEY (user_name));

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_数据库 Mysql _20

都是SQL基本语句

插入数据 INSERT INTO 表名(字段1,字段2VALUES(字段1的值,字段2的值)

 

mysql> INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD('123456'));

mysql> INSERT INTO users VALUES('lisi', PASSWORD('654321'));

 

------------删除命令--------------

DROP TABLE 删除一个数据表 需要指定 库名和表名

DROP DATABASE 删除一个数据库

DELETE FROM 表名 WHERE 条件表达式   删除数据记录

 

mysql> DELETE FROM users WHERE user='lisi';

mysql> DROP TABLE users;

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_数据库 Mysql _21

mysql> DROP DATABASE benet;

 

----------更改命令---------

UPDATE 表名 SET 字段名1=字段值1 WHERE 条件表达式

 

mysql> UPDATE users SET user_passwd=PASSWORD('abc123') WHERE user_name='lisi';

mysql> UPDATE mysql.user SET password=PASSWORD('123456') WHERE user='root';

mysql>flush privileges; //刷新授权信息

mysqladmin -u root -p password 'abc123'(新密码)要输入的是旧密码! 

mysql -u root -pabc123 //登录

Mysql(手动编译详细思路,以及增删改查,授权,备份还原)_下载地址_22

 

---------------授权命令-------------------

GRANT 权限列表 ON 库名,表名 TO 用户名@来源地址 IDENTIFIED BY 密码

mysql> GRANT select ON users TO 'tom'@'192.168.80.%' IDENTIFIED BY '123456';

//新建tom用户密码设置为123456,对其授权只能查询users表。

 

mysql>flush privileges; 

  

必须要刷新权限

mysql> SHOW GRANTS FOR 'tom'@'192.168.80.%';

mysql> REVOKE all ON user FROM 'helen'@'192.168.80.%';

---------------备份与恢复命令------------------

Mysqldump 选项 库名 表名表名2 > /备份路径/备份文件名   导出库中部分表

Mysqldump 选项 -- all-databases 库名库名2> /备份路径/备份文件名  备份所有数据库

mysqldump -u root -p --opt --all-databases > all-data.sql //备份所有数据库

mysqldump -u root -p --database auth > auth.sql //备份auth数据库

mysqldump -u root -p mysql user > mysql-user.sql //备份mysqluser

mysql>create database mysql; //先建立mysql空库

mysql -u root -p mysql < mysql.sql //将备份还原到mysql数据库中。