www.mysql.com 官方网站


communlty server 社区版  免费的


显示系统自带的mysql包

yum list | grep mysql


安装mysql:

yum install -y mysql-server mysql mysql-devel


看按的版本:

rpm -qi mysql-server


初始化:

service mysqld start    /restart


设置密码:

mysqladmin -u root password '密码'


开机启动:

chkconfig mysqld on


配置文件:/etc/my.cnf 

数据文件:/var/lib/mysql/

日志文件:/var/log/

mysald.log 日志

远程连接端口:tcp 3306


登陆MySQL        mysql (-h 192.168.0.1) -u root -p


查看MySQL版本    SELECT VERSION();


查看系统日期     SELECT CURRENT_DATE;


同时查看系统版本和系统日期

                 SELECT VERSION(),CURRENT_DATE;


简单计算         SELECT 4*4;

                 SELECT 4+4;


查看已有数据库   SHOW DATABASES;


创建数据库       CREARE DATABASES 数据库名;


删除数据库       DROP DATABASES 数据库名;


使用数据库       USE 数据库名;


SQL语言基础


SELECT  UPDATE DELETE INSERT WHERE


显示表格里的所有数据        SELECT *FROM 表名;


创建数据库         CREARE DATABASE 数据库名;


删除数据库         DROP DATABASE 数据库名;


每一列是一个属性;    

每一行是一条记录;


数据类型

integer(size),int(size),smallint(size),tinyint(size)                  存储整数数据


decima(size,d),numeric(size,d)  存储浮点数数据


char(sie)           存储固定长度字符串


varchar(size)       存储可变长度字符串


date (yyyymmdd)     存储日期


创建表格

CREARE TABLE 表名称(列名称1 数据类型,

                     列名称2 数据类型,

                     列名称3 数据类型

                     );


显示所有表格   SHOW TABLES;


显示表的结构    DESCRIBE 表名;


删除一个表格    DROP TABLE 表名;


重命名表名

ALTER TABSE 表名 RENAME 新表名;


向表中添加一列

ALTER TABLE 表名 ADD 列名称 列数据类型;


删除表中一列

ALTER TABLE 表名 DROP COLUMN 列名;


修改一个列的数据类型

ALTER TABLE 表名 MODIFY 列名 列数据类型;


重命名一个列

ALTER TABLE 表名 CHANGE COLUMN 列名 新列名 新列数据类型;


向表格中插入一条记录

INSERT INTO 表名 VALUES (值1,值2,....);

INSERT INTO 表名(列1,列2) VALUES (值1,值2);


从表格中查询记录

SELECT 列名称1,列明称2... FROM 表明称; 

SELECT * FROM 表明称;


从表格中按条件查询一条记录

SELECT 列名称 FROM 表名 WHERE 列 运算符 值;


从表格中删除一条记录

DELETE FROM 表名称 WHERE 列 运算符 值;

DELERE * FROM 表名称;


更新一条记录

UPDATE 表名称 SET 列名称=新值 WHERE 列=值;


删除返回结果重复项

SELECT DISTINCT 列名称 FROM 表名称;


where条件中使用逻辑组合

SELECT *FROM 表名称 WHERE 条件1 AND 条件2;

SELECT *FROM 表名称 WHERE 条件1 OR 条件2;


对查询结果按指定列进行排序

SELECT * FROM 表名称 ORDER BY 列名称;

SELECT * FROM 表名称 ORDER BY 列名称 DESC;




MYSQL用户管理

默认只有一个root用户

默认保存在user表中


创建新用户:

CREATE USER 用户名 IDENTIFIED BY '密码';

直接创建后不能直接登陆,因为没有设置权限。


删除用户: 

DROP USER 用户名;


重命名用户名:

RENAME USER 原用户名 TO 新用户名;


修改当前用户密码:

SET PASSWORD=PASSWORD('新密码');


修改指定用户密码:

SET PASSWORD FOR 用户名=PASSWORD('新密码');





mysql 权限系统


权限控制两个阶段

1 检查用户是否能够链接;

2 检查用户是否具有所有执行动作的权限;


授予一个用户权限:

GRANT ALL PRIVILEGES ON 层级to 用户名@主机 IDENTIFIED BY 密码;


eg:

授予nash_su用户全局级全部权限

GRANT ALL PRIVILEGES ON *.* to 'nash_su'@'%'IDENTIFIED BY 'linuxcase';

 

授予nash_su用户针对linuxcast数据库全部权限。

GRANT ALL PRIVILEGES ON linuxcase.* to 'nash_su'@'%'IDENTIFIED BY 'linuxcase';


撤销一个用户权限:

REVOKE ALL PRIVILEGES FROM 用户名;


%主机   %是不限制是哪个主机的访问;

可以使ip地址或者主机名;

使用“*”通配符  

可以指定网段;

可以设lockhost;本地连接;


root远程登陆也需要上边的提权;不建议打开;




MYSQL简单的备份和恢复


最为广泛的备份恢复工具mysqldump


备份一个指定数据库:

mysqldump -u root -p 数据库名称 > 备份文件.sql


备份出来的是纯文本的sql文件,可以修改后作为其他数据库数据使用。


从备份的SQL文件恢复一个指定数据库:

mysqldump -u root -p 数据库名称 < 备份文件.sql



数据库编码设置


编码主要影响以下两个方面:

1、数据库保存相同内容所占用的空间大小;

2、数据库与客户端通信;


显示系统的编码设置:

SHOW CHARACTER SET;


SHOW VARIABLES LIKE 'character_set%';

SHOW VARIABLES LIKE 'collation%';


创建数据库的时候可以使用命令指定编码:

CREATE DATABASEA linuxcase

    DEFAULT CHARACTER SET utf8

DEFAULT COLLATE utf8_general_cl;


也可以修改一个数据库的编码:

ALTER DATABASE linuxcase CHARACTER SET utf8 COLLATEU utf8_general_cl;


设置默认编码

/etc/my.cnf文件

{client}

default-character-set=utf8

{mysql}

default-character-set=utf8

{mysqld}

default-character-set=utf8

collation-server=utf8_unicode_ci

init-connect='SET NAMES utf8'

character-set-server=utf8


修改之后重启MySQL服务,通过下边的命令查看默认编码:

SHOW VARIABLES LIKE 'character_set%';