查看当前用户 :
select Host,User from mysql.user;
1.mysql 创建用户 :
create user test identified by '123456'
2.授权远程登陆:
grant all privileges on *.* to 'test'@'%'identified by '123456' with grant option;
3.刷新mysql用户权限相关表;
flush privileges ;
4.修改配置文件中的 bind
bind-address = 0.0.0.
5.重启mysql
server mysqld restart
修改用户密码 :
update user set password=password('admin123') where user='test';
如果出现错误 :
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
这是因为 mysql 版本问题, 改为使用一下语句修改即可 :
update mysql.user set authentication_string=password('admin123') where user='test' ;
修改完之后重启mysql即可 :
service mysql restart
一、创建一张表
创建一张表的时候可以【预留一些栏位】,你只要不使用就行,为的就是以后如果需求有变时不用更改表结构,只要对这个栏位就行操作就行(如果增加字段就把预留的栏位利用起来.可以修改 字段名称、改变字段类型都行,如果删除字段就把 要输出 的栏位不再 在sql 语句中操作就行)。
二、逻辑删除
某些重要的数据【不能真正的删除】,可以在设计表的时候给他一个标志位,用于判断该数据是否有效,默认为有效,如果要删除这条数据就把他设置 为无效。
------------------------------------------------------------------------------
SQL 语句
一、数据库 操作
mysql 登录 :
mysql -u root -p
输入密码
1.显示当前所有的数据库
show databases;
2. 创建数据库
create database 数据库名 charset=utf8; (charset=utf8 这个是指定数据库字符集)
3.删除数据库
drop databases 数据库名;
4.切换数据库
use 数据库名;
5. 查看当前选择的数据库
select database();
二、 表操作
1.查看当前数据库中所有的表
show tables;
2.创建表
create table 表名(列及类型);
auto_increment 表示自动增长。例如:
create table student(id int auto_increment primary key,
name varchar(10) not null,
gender bit default 1,
brithday datetime);
3.查看表结构
desc 表名;
例如 :
desc student; 输出如下
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(10) | NO | | NULL | |
| gender | bit(1) | YES | | b'1' | |
| brithday | datetime | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
4.修改表
alter table 表名 add|change|drop 列名 类型;
例如 :
alter table student add isDelete bit default 0;
【这个修改表尽量通过在设计表结构的时候通过预留栏位来避免,
因为表和表中数据已存在的情况下 再去 做这个操作很多情况下都会报错,
也可能导致之前的数据没了】
5.删除表
drop table 表名;
6.更改表名
rename table 原表名 to 新 表名;
例如:
rename table student to mystudent;
7.查看表的创建语句
show create table 表名;
例如 :
show create table student;
三、数据操作
1.查询
select ** from 表名;
2.增加
全列插入:insert into 表名 values(...)
例如:
insert into students value (0,'郭靖',1,'1994-02-14',0);
缺省插入:insert into 表名(列1,...) values(值1,...)
例如 :
insert into students (name,brithday) value ('黄蓉','1994-02-14');
同时插入多条数据:insert into 表名 values(...),(...)...;
例如 :
insert into students value (0,'杨过',1,'1994-02-14',0),(0,'小龙女',1,'1994-02-14',0);
或insert into 表名(列1,...) values(值1,...),(值1,...)...;
例如 :
insert into students (name,brithday) value ('黄药师','1994-02-14'),('洪七公','1994-02-14');
【主键列 是自动增长的,但是在全列 插入时需要占位,
通常使用 0 ,插入成功后以实际数据为准】
3.修改
updete 表名 set 列1=值1,...where 条件;
例如 :
update students set name='雕' where id=5;
4.删除 【这个是物理删除,删除了就没了】
delete from 表名 where 条件;
例如 :
delete from students where id = 6;
【如果没有给条件,那么 所有的数据就都被删除了!!!】
四、备份与恢复 【把数据 从一个服务器移动到另外一个服务器】
1.数据备份
进入超级管理员
sudo -s
进入 mysql 库目录
cd /var/lib/mysql
运行 mysqldump 命令
mysqldump -uroot -p 数据库名 > ~/备份文件.sql;
即 mysqldump -uroot -p 数据库名 > 备份的文件的路径加文件名;
按提示输入 mysql 的密码
此时使用超级管理员身份进入 ~ 目录下就能看到 备份文件.sql 这个文件。
这个 备份文件.sql 文件 其实里面是一堆 sql 语句(里面没有操作数据库的语句,
都是些创建表和增加数据的操作)。
2.数据恢复
连接 mysql ,创建数据库
退出连接,执行以下命令对数据进行恢复
mysql -uroot -p 数据库名 < ~/备份文件.sql
按提示输入 mysql 的密码
这样就把 之前 的数据恢复到 新建的数据库里面了。
总结 :
数据的备份说白了就是按照数据库中现有的数据生成一堆 sql 语句,
然后把这堆语句保存到一个指定的文件中,
数据恢复说白了就是先新建一个数据库,然后 通过这个脚本来生成数据。
如果跨服务器 ,这个脚本很重要。