数据学习:
数值类型
tinyint(m) 1B/-128~127
smallint(m) 2B/-32768~32767
mediumint(m) 3B/-8388608~8388607
int(m) 4B/-2147483648~2146473647
bigint(m) 8B/-9.22*10^18~9.22*10^18
浮点类型
float(m,d) 4B/8位精度数,m为小数点前,d为小数点后位数。
double(m,d) 8B/16...
decimal(m,d) 定点类型数据精确值,m为全不位数,d为小数点后位数,m>d,0<d<30<m<65
字符串类型
char(n) 固定长度字符串,最大255个字符
varchar(n) 可变长度字符串,最大65535个字符
tinytext 短文本字符串,最多255个字符
text 长文本数据,最大65535个字符
mediumtext 中等长队文本数据,最大2^24-1个字符
longtext 极大文本数据,最大2^32-1个字符
日期和时间类型
date YYYY-MM-DD/1000-01-01/9999-12-31
time HH:MM:SS/"-838:59:59"/"838:59:59"
year YYYY/1901/21 55
datetime YYYY-MM-DD HH:MM:SS/1000-01-01 00:00:00/9999-12-31 23:59:59
timestamp YYYY-MM-DD HH:MM:SS/1970-01-01 00:00:00/2037 ***/混合值,时间戳
mysql -uroot -p
create database database1 character set utf8;
show databases;
use database1;
create table user(
>id int(10) not null primary key auto_increment,
>name varchar(50) not null,
>age int,
>income float,
>addr varchar(100) not null,
>jobs varchar(50) not null,
>birday date);
PS:怕出错可以编辑为文本文件后执行:use database1>source e:/create_user.sql;
create table tab_new like tab_old;
create table tab_new as select * from tab_old;
insert into user(name,age,income) values('xinping',25,3000);
select * from user;
update user set income = 9000 where id = 1;
delete from user where id = 2;
alter table user add homeaddress varchar(100);
alter table user change homeaddress homeaddr varchar(80);
alter table user dorp homeaddr;
alter table user rename users;
dorp table users;
dortp database database1;
mysql 的备份与恢复
mysqldump -uroot -pxxxx discuz 备份discuz库
mysqldump -uroot -pxxxx discuz > /data/discuz.sql 备份discuz库文件为/data/discuz.sql
vim /data/discuz.sql 查看备份的文件内容
mysql -uroot -p discuz < /data/discuz.sql 恢复备份的命令
mysqldump -uroot -p discuz pre_forum_post > /data/post.sq 备份一个表
mysql -uroot -p discuz < /data/post.sql 恢复一个表 略有不同
mysqldump -uroot --default-character-set=gbk -p discuz pre_forum_post > /data/post.sql 指定字符集后备份mysql (推荐备份使用格式)
mysql -uroot --default-character-set=gbk -p discuz < /data/post.sql 使用指定字符集恢复mysql备份文件 (推荐使用,防止恢复后乱码)
mysql配置简介
vim /etc/my.cnf 配置文件存放目录
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8
后面添加:
interactive_timeout = 8
wait timeout = 8
long_query_time = 1
log_slow_queries = /data/mysql/slow.log
然后保存即可
忘记mysql root用户密码解决办法
mysql -uroot 一般登陆操作(未设置密码)
mysqladmin -uroot password 'xxxxxxxx' 设置密码mysql -uroot -pxxxxxxxx 使用密码登陆
忘记密码后的操作:
vim /etc/my.cnf
在
log_slow_queries = /data/mysql/slow.log 后面添加一行:
skip-grant
保存退出
/etc/init.d/mysqld restart
mysql 进入
use mysql 使用mysql 库
update user set password=password('') where user='root';
select * from user where user='root'\G;
quit
然后vim /etc/my.cnf
去掉 skip-grant
保存
重启后重新登陆
mysql常用操作
mysql -uroot -p 本地登陆mysql
mysql -uroot -h192.168.0.130 -P3306 -pxxxxxxxx 远程登陆其他主机mysql
mysql -uroot -h127.0.0.1 -P3306 登陆远程主机
grant all on *.* to 'root'@'192.168.0.251'(客户机地址) identified by '123aaa'; 添加允许
show databases; 查看有哪些库
use discuz
use test 切换库
select database(); 查看当前在那个库
select user(); 查看当前用户
select version(); 查看数据库版本信息
库-->表-->行-->字段
show tables; 查看表
desc pre_ucenter_vars; 查看行,字段
show create table pre_ucenter_vars\G; 查看表构成
show create table pre_forum_post\G; 查看表构成
desc pre_forum_post; 查看表段
create database aming; 创建库
use aming; 连接表
create table tb1 (`id` int(4), `name` char(40)) ENGINE=MyISAM DEFAULT CHARSET=gbk; 创建新的表
show tables; 查看表
desc tb1; 查看表tb1
show create table tb1\G; 查看tb1表信息
insert into tb1 values(1, 'aming'); 添加(插入)表单
select * from tb1; 查看表信息
insert into tb1 (`id`) values(2); 只插入一个字段行
insert into tb1 (`id`) values(3); 只插入一个字段行
insert into tb1 (`id`,`name`) values('4','user'); 同时插入几个字段行
update tb1 set id=5 where name = '55'; 更新行
delete from tb1 where name='55'; 删除一个行
truncate table aming.tb1; 清空aming库的tb1表
drop table tb1; 删除表
drop database aming; 删除库
show databases; 查看所有库
授权 创建新的用户
grant all on discuz.* to 'user1'@'%' identified by 'dralkdfjlajfdljlkdjf'; 授权(创建)用户在本机下可操所有IP 下的 discuz库所有内容,以xxxx为登陆密码
flush privileges; 刷新权限后上面命令才生效
show processlist; 查看当前数据库队列(进程列表)
show variables; 查看数据库变量
set global max_connections=200; 不重启数据库直接设置该参数值为200
show variables like 'max_connec%'; 过滤显示该参数值,%为通配符
show status; 查看状态
show status like '%running'; 显示尾綴为running的参数状态 %通配符
mysql错误日志目录由vim /etc/init.d/mysqld 文件下定义
在/data/mysql 目录下
[hostname].err 即错误日志
repair table discuz.pre_forum_post; 修复该表