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%';