您的位置:首页 > 数据库 > MySQL

mysql数据库基本操作以及备份

2017-01-01 20:18 417 查看
1.基本查看及登录:
mysql -uroot -p
show databases; ##查看数据库



use mysql; ##进入数据库mysql
show tables; ##查看表



desc user; ##查看表的结构,表头



2.表的操作:查,改,删,增
select * from user \G; ##查询user表中的所有数据记录



select host,user,password from user; ##指定user表的字段进行查询



update mysql.user set password=password("123123") where user="root"; ##修改root密码




delete from mysql.user where user=""; ##删除用户为空的数据记录



create database auth; ##创建库auth
create table auth.users(user_name char(16) not null, user_passwd char(48) default '',primary key (user_name)); ##创建表auth.users




insert into auth.users values('hehe','pwd@123'); ##新增记录



drop table auth.users; ##删除表users



drop database auth; ##删除库auth



3.mysql的权限管理
grant all on 库.* to 用户@客户机地址 identified by ‘密码’;






show grants for 用户@客户机地址;
revoke 权限列表 on 库.* from 用户@客户机地址;
grant select,delete on mysql.user to 'useradm'@'192.168.100.100' identified by '123123';
show grants for 'useradm'@'192.168.100.100';



revoke select,delete on mysql.user from 'useradm'@'192.168.100.100';



delete from mysql.user where user='useradm';



flush privileges;
4.备份与恢复mysql
登录到mysql
create database auth;
Quit



/etc/init.d/mysqld stop
cd /usr/local/mysql/data
cp -rf mysql/user.* auth/



chown mysql:mysql auth/ -R
chmod 755 auth
chmod 660 auth/*



/etc/init.d/mysqld start



登录mysql
use auth;
show tables; ##能看到user表,desc能查看结构,select




mysql的冷备份:
/etc/init.d/mysqld stop
tar Jcf /opt/mysql-bak-$(date +%F).tar.xz /usr/local/mysql/data



模拟故障:
/etc/init.d/mysqld start



mysql登录
drop database auth;
quit;







/etc/init.d/mysqld stop



mysql恢复:
tar Jxf /opt/mysql-bak-*.tar.xz -C /root



cd /root/usr/local/mysql/data
cp -rf auth/ /usr/local/mysql/data



chown mysql:mysql /usr/local/mysql/data/auth -R
cd /usr/local/mysql/data
chmod 755 auth
chmod 660 auth/*



/etc/init.d/mysqld start
mysql登录验证
show databases; ##数据已经恢复




在线备份;mysqldump
netstat -utpln |grep 3306 ##确保mysql启动



mysqldump -uroot -p123123 --all-databases >/opt/all.sql #备份



mysqldump -uroot -p123123 --all-databases --lock-talbes=0 >/opt/all.sql
mysql -uroot -p123123 </opt/all.sql ##恢复
在bash中操作mysql:去交互
vi /root/test.sh
mysql -uroot -p123123 <<END
create database hehe;
END
:wq
chmod +x /root/test.sh
/root/test.sh



5.mysql忘记密码的解决方案:
vim /etc/my.cnf
[mysqld]
skip-grant-tables ##添加该行,跳过密码验证
:wq
/etc/init.d/mysqld restart
mysql ##登录后操作



update mysql.user set password=password("123123") where user="root"; ##修改root密码
Exit



vim /etc/my.cnf
[mysqld]
#skip-grant-tables ##注释该行
:wq
/etc/init.d/mysqld restart



6.单独管理用户:
用户管理
mysql>use mysql;
mysql> select host,user,password from user ;



mysql>create user linuxfan identified by '123123'; ##identified by 会将纯文本密码加密作为/散列值存储



mysql>rename user linuxfan to fage;##mysql 5之后可以使用,之前需要使用update 更新user表



mysql> set password for fage=password('123'); ##:需在mysql.user 表中使用



mysql> update mysql.user set password=password('123') where user='fage';##
指定表中数据的根位置,无需进入表。



mysql> show grants for fage;查看用户权限



mysql> grant select on mysql.user to fage; ##赋予权限



mysql> revoke select on mysql.user from fage; ##如果权限不存在会报错



mysql>drop user fage; ##mysql5之前删除用户时必须先使用revoke 删除用户权限,然后删除用户,mysql5之后drop 命令可以删除用户的同时删除用户的相关权限



7.设置mysql5.5显示中文名:
vi /etc/my.cnf
[client]
default-character-set = utf8
[mysqld]
character-set-server = utf8
init_connect='SET NAMES utf8'
:wq
/etc/init.d/mysqld restart
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql