一、使用mysql的遇到的一些问题
1. mysql设备只设置自己这个服务器访问
在/etc/my.cnf文件的[mysqld]标签下加上 bind-address=127.0.0.1,然后重启mysql
2.访问不限制
什么都不加或在[mysqld]标签下加 bind-address=0.0.0.0,然后重启mysql
3. mysql 忘记密码
在/etc/my.cnf文件的[mysqld]标签下加 skip-grant-tables
重启mysql后,使用mysql -uroot 进入数据库
然后set password=password('密码')进行修改密码
然后记得把skip-grant-tables注释掉,重启mysql
4.mysql 默认没有my.cnf文件
使用mysql --help|grep my.cnf 查询my.cnf文件的默认位置如下,读取优先级从前往后
选一个位置进行创建,最好用/etc/my.cnf,然后mysql正常连接数据库,通过show variables like '%参数名%',查询参数,常用的查询参数有 (basedir、datadir、port、socket)这些参数,根据现实情况添加参数,然后重启mysql。(my.cnf文件内容大概如下)
5. IFNULL(expr1,expr2)
如果expr1为null ,则输出expr2,否则输出expr1
select ifNull((select distinct Salary from Employee order by Salary desc limit 1,1),null) as SecondHighestSalary
二、mysqldump相关的命令
1.导出一个数据库
mysqldump -uroot -p 数据库名 > bak.sql
2.导出多个数据库
mysqldump -uroot -p --databases 数据库1 数据库2 > bak.sql
3. 导出指定的表
mysqldump -uroot -p --tables 数据库名 table1 table2 > bak.sql
4.导出指定的表结构
mysqldump -u 用户名 -p --no-data 数据库名 表名 > 备份文件名.sql
5.导出数据库结构(不含数据)
mysqldump -u 用户名 -p -d dbname > dbname.sql
三、常用的一些sql
1.展示表的创建语句
show create table 表名;
2.展示数据库的创建语句
show create database 数据库名;
3.创建备份表,数据也备份
create table 新表名 as select * from 原表名;
4.创建备份表,只有表结构
create table 新表名 like 旧表;
5.备份数据到新表
insert into 新表 as select * from 旧表;
6.查看数据库表结构
desc 表名;
7.如果表存在就删除
drop table id exists 表名;
8.修改表名
rename table 旧表名 to 新表名;
9. alter table 用法 添加列:
alter table table_name add 列名 数据类型;
10.alter table 用法 删除列:
alter table table_name drop column 列名;
11.alter table 用法 修改列名:
alter table table_name column 旧列名 to 新列名;
12.alter table 用法 修改列的数据类型:
alter table table_name modify 列名 新数据类型;
13.alter table 用法 设置默认值:
alter table 表名 alter column 列名 set default 默认值;
14.alter table 用法 移除默认值:
alter table 表名 alter column 列名 drop default;
15.alter table 用法 添加主键:
ALTER TABLE 表名 ADD PRIMARY KEY(列名);
16.alter table 用法 添加索引:
CREATE INDEX 索引名 ON 表名 (列名);
17.alter table 用法 删除索引:
DROP INDEX 索引名;
18.alter table 用法 添加外键约束:
ALTER TABLE 表名 ADD CONSTRAINT 外键约束名 FOREIGN KEY (列名) REFERENCES 其他表(列名);
19.alter table 用法 删除外键约束:
ALTER TABLE 表名 DROP CONSTRAINT 外键约束名;
20.alter table 用法 添加唯一约束:
ALTER TABLE 表名 ADD CONSTRAINT 唯一约束名 UNIQUE (列名);