#!/bin/bash
mkdir -p /data/backmysql/$(date +%F)
mysqldump -uroot -p'XcG12zcq9fCQ1FTICcsu' test > /data/backmysql/`date +%F`/test.sql
mysqldump -uroot -p'XcG12zcq9fCQ1FTICcsu' mysql > /data/backmysql/`date +%F`/mysql.sql
rm -rf /data/backmysql/`date +%F --date '30 days ago'`
show databases; 显示server里有哪些数据库
use mysql; 切换到mysql 这个数据库中。
show tables; 现在当前的这个数据库中的表。
mysqladmin -uroot password 123.com 在没有数据库密码的时候,给数据库设置密码
mysqladmin -uroot -p123.com password 修改数据库密码
create database zabbix; 创建数据库
drop database test; 删除test数据库
DESCRIBE 表名; 显示数据表的结构:
出现这个错误的时候的解决方法
Duplicate entry '%-root' for key 'PRIMARY'
就再添加 一个root允许远程登录就好了
grant all privileges on *.* to "root"@"%" identified by '123456' by grant option;
如果你要用root做管理帐号就写下面的那个
本地授权访问数据库(远程有,本地显示不到数据库)
grant all privileges on *.* to 'root'@'localhost' identified by '你的密码';
授权root用户远程访问权限
进入到mysql 数据库中
use mysql;
使用root用户从任何主机连接到Mysql服务器
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mysql123' WITH GRANT OPTION;
(权限传递 使用这个子句时将允许用户将其权限分配给他人 对象授权加的是 选项不能被授予角色 短语 EXECUTE WITH GRANT OPTION 权限)
强制刷新权限
FLUSH PRIVILEGES;
一、终端登陸Mysql
mysql -u[用戶名] -p[password] -h[localhost]
二、创建用户
①、创建只能本地登陆的用户newuser,允许在dbname上进行select,insert,update,delete操作,密码abc.123:
grant select,insert,update,delete on dbname.* to newuser@localhost Identified by "abc.123";
②、创建允许远程登陆的用户newuser,允许在dbname上进行select,insert,update,delete操作,密码abc.123:
mysql> grant select,insert,update,delete on dbname.* to 'newuser'@'%' Identified by "abc.123";
最后刷新MySQL权限即可:
mysql> flush privileges;
create user "username"@"localhost" identified by "you password"; 创建用户并设置数据库密码
授权方式:
用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.
例子:
grant SELECT, INSERT on zabbix.* to "zabbix"@"localhost";
grant all on zabbix.* to zabbix@127.0.0.1 identified by 'zabbix.com' with grant option;
三、创建,删除和最基本查询
Ps:举例数据库名为dbname,表为mytable
显示数据库 mysql->show databases;
创建数据库 mysql->create database dbname;
删除数据库 mysql->drop database dbname;
选择数据库 mysql->use dbname
创建表 mysql->create table mytable(name varchar(20),sex(char(1),birth date);
删除表 mysql->drop table mytable;
显示表的内容 mysql->show tables;
显示表的结构 mysql->describe mytable;
四、更新操作
1、对列的操作:
在一个表中增加一条字段 mysql->alter table yourtable add name varchar(20)not null;
删除一个字段 mysql->alter table yourtable drop name ;
2、对行的操作:
插入一条记录 mysql->insert into mytable values('summer','m','1983-08-24');
删除一条记录 mysql->delete from mytable where name='summer';
修改一条记录 mysql->update mytable set sex='vm' where name='summer';
插入多条记录 mysql->insert into mytable select * from yourtable;
根据条件插入 mysql->insert into mytable select * from yourtable where `key`='value';
五、简单查询:
1.在查询结果中显示列名
a.用as关键字:select name as '姓名' from students order by age
b.直接表示:select name '姓名' from students order by age
2.精确查找:
a. 用in限定范围:select * from students where native in ('湖南', '四川')
b. between...and:select * from students where age between 20 and 30
c. 比较测试符:(包括=,<>,<,<=,>,>=)select * from students where name = '李山'
d. like:select * from students where name like '李%' (注意查询条件中有“%”,则说明是部分匹配,而且还有先后信息在里面,即查找以“李”开头的匹配项。所以若查询有“李”的所有对象,应该命令:'% 李%';若是第二个字为李,则应为'_李%'或'_李'或'_李_'。)
e. []匹配检查符:select * from courses where cno like '[AC]%' (表示或的关系,与"in(...)"类似,而且"[]"可以表示范围,如:select * from courses where cno like '[A-C]%')注:关于这个字符我在mysql里用的时候mysql把它当两个普通自符处理的。
[^]stockname like '[^F-M]%' --------- (^排除指定范围)
f. count()求总数,如:select count(*) from students (求学生总人数)
g. avg(列)求平均,如:select avg(mark) from grades where cno=’B2’
h. max(列)和min(列),求最大与最小
六、其他语句整理
根据条件导出mysql的指定表(即部分数据导出,WordPress网站应该用得到):
mysqldump -h mysql服务器IP -u用户名 -p密码 数据库名表名 --where="筛选条件">导出文件路径;
恢复方法:先用 “use dbname” 选定数据库,然后使用 “source sql的文件路径”命令即可恢复。
例:从wp_blog数据库的wp_postmeta表中导出meta_key=views 的数据到 /home/xyx/Temp.sql 这个文件中
mysqldump -uroot -p123456 wp_blog wp_postmeta --where="meta_key=views" > /home/xyx/Temp.sql
如果是在终端可如下恢复:
mysql> use mydb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> source /home/xyx/Temp.sql
Query OK, 30 rows affected (0.00 sec)
显示所有字符集:
show character set;