mysql修行练级之mysql新手入门常用命令创建时间:2014.08.24修改时间:2014.09.26从一个运维工程师和dba新手的角度出发,学习,实践从而掌握mysql相关操作。1.登
mysql修行练级之mysql新手入门常用命令创建时间:2014.08.24
修改时间:2014.09.26
从一个运维工程师和dba新手的角度出发,学习,实践从而掌握mysql相关操作。
1.登录mysql服务器当面对一个正在运行的mysql服务,我们需要做的第一件事情就是登录mysql服务。
mysql客户端能够以两种不同的方式连接到mysqld服务器:
非标准端口登录
非3306服务端口登录,例如:
mysql -u qunyingliu -p 51cto20140824 -p 3307mysql -h 10.1.8.24 -u qunyingliu -p 51cto20140824 -p 3307b.通过socket链接mysql服务
mysql -s mysql.sock文件地址例如,
mysql -s /tmp/mysql/mysql.sock当然如前所述,以下两种登录方式,默认也是通过unix连接mysql服务的:
mysqlmysql -p 3307 -u qunyingliu -p51cto20140824mysql -h localhost -p 3307 -u qunyingliu -p51cto20140824如果通过socket方式连接mysql,当mysql.sock文件不是默认的名称或存放路径时,我们将会收到类似如下错误信息:
error 2002 (hy000): can't connect to local mysql server through socket '/var/lib/mysql/mysql.sock'
2.mysql常用交互命令
取消授权:
revoke all privileges(权限) on *(数据库).*(表) from 帐号@主机;
如,
mysql>revove all privileges on *.* from qunyingliu@%;删除用户:
delete from user where user=帐号 and host=%;
如,
delete from user where user=qunyingliu and host=%;数据库/数据表/数据列权限:
alter: 修改已存在的数据表(例如增加/删除列)和索引。
create: 建立新的数据库或数据表。
delete: 删除表的记录。
drop: 删除数据表或数据库。
index: 建立或删除索引。
insert: 增加表的记录。
select: 显示/搜索表的记录。
update: 修改表中已存在的记录。
全局管理mysql用户权限:
file: 在mysql服务器上读写文件。
process: 显示或杀死属于其它用户的服务线程。
reload: 重载访问控制表,刷新日志等。
shutdown: 关闭mysql服务。
特别的权限:
all: 允许做任何事(和root一样)。
usage: 只允许登录--其它什么也不允许做。
查看 mysql 用户权限
查看当前用户(自己)权限: show grants; 查看其他 mysql 用户权限: show grants for qunyingliu@10.2.122.1;mysql服务相关操作
查看mysql版本与当前时间:
select version(),current_date;
修改密码:
update user set password=password(liuqunying) where user='qunyingliu'; flush privileges(刷新权限)
3.mysql数据备份与恢复备份数据库:
mysqldump -h host -u root -p 数据库名 --default-character-set=utf8[|gbk|latin1] >dbname_backup.sql备份数据表:
mysqldump -h host -u root -p 数据库名 表名 >dbname_tablename_backup.sql只导出插入数据的sql命令:
mysqldump -h host -u root -p -t 数据库名 [表名] >insert_data.sql只导出创建表的sql命令:
mysqldump -h host -u root -p -d 数据库名 [表名] >create_table.sql只导出表内的数据:
mysqldump -h host -u root -p -t 导出数据目录 数据库 表名恢复数据库:恢复的方法有多种,,推荐source命令, 可以查看数据导入的进度
mysql+source命令:
qunyingliu_host# mysql -h host -u root -p mysql> use dbname;source dbname_backup.sql;mysqldump命令:
qunyingliu_host# mysqldump -u username -p dbname mysql命令: qunyingliu_host# mysql -u username -p -d dbname 重置root帐号登录密码
qunyingliu_host# /etc/init.d/mysql stop qunyingliu_host# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & qunyingliu_host# mysql -u root mysql mysql> update user set password=password('qunyingliu@51cto') where user='root'; mysql> flush privileges; mysql> quit qunyingliu_host# /etc/init.d/mysqld restart qunyingliu_host# mysql -uroot -p使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.
想删除表,当然用drop
想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.
如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据/
实际应用:
delete from table; //删除所有数据
truncate table; //将auto_increatement调制从0开始,实际就是从1开始
##########################
参考引用:
本文出自 “运维者说:从菜鸟到老鸟” 博客,请务必保留此出处
