MySQL
Start Time:2014-10-31
1.yum安装mysql的几个重要的目录
/var/lib/mysql #数据目录
/usr/share/mysql #配置文件
/usr/bin/ #相关命令
/etc/rc.d/init.d/ #启动脚本
/etc/my.cnf #mysql配置文件
/var/log/mysqld.log #mysql日志文件
2.用户管理
默认安装的mysql没有密码
mysql直接登录
mysqladmin -u root password '密码' #设置mysql密码
mysqladmin -uroot -p密码 password 新密码
mysql> update mysql.user set password=PASSWORD("123@qw") where user='root';#更改mysql密码
mysql> flush privileges; #使生效
create user 用户名 identified by 'password'; #创建用户
drop user 用户名; #删除用户
rename user 用户名 to 新用户名; #更改用户名
set password = PASSWORD('password'); #更改密码
set password for 用户名 = PASSWORD('password'); #更改用户密码
权限管理
注:检查用户是否能够连接,检查用户是否有执行权限
grant授权 revoke撤销
层级:全局层级/数据库层级/表层级/列层级/子程序层级
grant all privileges on 层级 to '用户'@'主机' identified by 'password';
revoke al privileges from 用户名;
MySQL连接认证
ALL host:%
Host:www.domain.com/192.168.1.1
*:*.domain.com
Hosts:192.168.1.0/255.255.255.0
mysql> update mysql.user set host='192.168.0.0/255.255.255.0' where user='renke';
##############################################
3.数据库编码
编码影响:
数据库保存内容占空间大小
数据库与客户端通信
MySQL默认的编码是Latin1
mysql> show character set; #查看数据库支持的编码
mysql> show variables like 'collation_set%';
mysql> show variables like 'character%'; #查看数据库编码,默认是拉丁
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 | #客户端编码
| character_set_connection | latin1 | #建立连接使用的编码
| character_set_database | utf8 | #数据库编码
| character_set_filesystem | binary |
| character_set_results | latin1 | #结果集编码
| character_set_server | utf8 | #数据库服务器编码
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------
注:上述四个保持一致编码方式,就不会出现乱码
mysql> show variables like 'collation%'; #另一种查看编码的命令(修改过了)
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
create dateabase dbname
default character set utf8
default collate utf8_general_ci; #创建数据库时,可以指定数据库编码
alter database dbname
character set utf8 collate utf8_general_ci; #修改数据库编码
/etc/my.cnf
添加
[mysqld]下面添加
default-character-set=utf8
[client]
default-character-set=utf8
重启动mysql服务即可
4.mysql基本命令
show databases; #查看数据库
show tables; #查看数据表
create database 数据库名;
drop database 数据库名;
insert into 数据库.表 values (1,'zhangsan');
select * from 数据库.表;
select 列名 from 数据库.表;
select distinct 列名 from 数据库.表名; #distinct删除重复项
select * from 表名 where 条件1 and 条件2;
select * from 表名 where 条件1 or tia
select * from 表名 order by 列名; #排序
select * from 表名 order by 列名 desc; #排序(倒序)
alter table 表名 rename 新表名; #重命名表名
alter table 表名 add 新列 varchar(100); #表中添加一列
alter table 表名 drop column 列名; #删除一列
alter table 表名 modify 表名 varchar(100); #修改一个列的数据类型
alter table 表名 change column 列名 新列名 varchar(100); #重命名列名
delete * from 表名; #删除表中所有记录
delete from 表名 where 条件;
update 表名 set 列表名=新值 where 列=值;#更新语句
5.mysql备份
mysqldump -uroot -p123@qw 数据库 > backup.sql #备份数据库
mysql -uroot -p123@qw 数据库 < backup.sql#还原数据库
注:使用source也可以导入数据库
mysqldump -uroot -p123@qw 数据库 > /Backup/database-`date +%F-%H-%M-%S`.sql
mysqldump -uroot -p123@qw 数据库 > /Backup/database-$(date +%F-%H-%M-%S).sql
mysqldump -uroot -p123@qw 数据库 表1 表2 > 表.sql #备份数据库表
mysql -uroot -p123@qw 数据库 < 表.sql #还原数据库表
mysqldump -uroot -p123@qw 数据库 | gzip > /Backup/dateabase-`date +%F-%H-%M-%S`.sql.gz
#备份压缩数据库
gunzip < BACK.sql.gz | mysql -uroot -p123@qw 数据库 #还原压缩数据库
6.
mysql -uroot -p123@qw -S /var/lib/mysql/mysql.sock -e "show databases" #-S or --sock=