运维常用Mysql基本命令

运维常用Mysql基本命令

基本命令

#远程连接
mysql -h hostname -u root -p
#创建数据库
create database [databasename];
#列出所有数据库。
show databases;
#选择数据库
use databasename; 
#删除列。
1. mysql> alter table [table name] drop column [column name];
#新增列到db。
1. mysql> alter table [table name] add column [new column name] varchar (20);
#更改列名。
1. mysql> alter table [table name] change [old column name] [new column name] varchar (50);
#增加唯一的列。
1. mysql> alter table [table name] add unique ([column name]);
#设置列值大点。
1. mysql> alter table [table name] modify [column name] VARCHAR(3);
#删除唯一列。
1. mysql> alter table [table name] drop index [colmn name];
#直接删除数据库,不提醒
drop database name 
# 显示表
show tables;
#删除一个数据表。
drop table [table name];
#查看数据表的字段格式。
describe [table name];
#显示一个数据表的所有数据。
SELECT * FROM [table name];
#中加上distinct去除重复字段
select 
#删除数据库前,有提示。
mysqladmin drop databasename 
#显示当前mysql版本和当前日期
select version(),current_date;

用户相关

#更新root密码。
mysqladmin -u root -p oldpassword newpassword
#修改root密码
mysql> update user set password=password(”xueok654123″) where user=’root’;
#刷新数据库
mysql> flush privileges 
#打开数据库
mysql>use dbname; 
#显示所有数据库
mysql>show databases; 
#显示数据库mysql中所有的表:先use mysql;然后
mysql>show tables; 
#显示表mysql数据库中user表的列信息);
mysql>describe user; 
#创建用户
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY ’something’ WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@”%” IDENTIFIED BY ’something’ WITH GRANT OPTION;
#删除授权
mysql> revoke all privileges on *.* from root@”%”;
mysql> delete from user where user=”root” and host=”%”;
mysql> flush privileges;
#更改用户密码。以root登录,设置密码,更新权限。
1. mysql> use mysql;
2. mysql> update user set password=PASSWORD("newrootpassword") where User='root';
3. mysql> flush privileges;

实例

#新建一个用户。以root登录。切换到mysql数据库,创建用户,刷新权限。
1. \# mysql -u root -p
2. mysql> use mysql;
3. mysql> INSERT INTO user (Host,User,Password) VALUES('%','username',PASSWORD('password'));
4. mysql> flush privileges;

同步相关

#查看binlog状态
show master status;
#启动同步
start slave;
#刷新权限
flush privileges; 
#主从复制创建用户授权远程访问
grant replication slave on *.* to 'copy65'@'%' identified by '123456';
#其中*.* 的第一个*表示所有数据库名,第二个*表示所有的数据库表,root@'%' 中的root表示用户名,%表示ip地址,%也可以指定具体的ip地址,
grant all privileges on *.* to root@'%' identified by '123456';
#如果从服务器不是初始状态,建议重置一下:
stop slave;
reset slave;
#重置logbin
reser master
#设置主从关系
change master to master_host='192.168.187.128',master_user='copy',master_port=3307,master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=154;
#锁表
flush tables with read lock;
#解锁
unlock tables;

备份相关

#备份数据库
shell> mysqldump -h host -u root -p dbname >dbname_backup.sql
#恢复数据库
shell> mysqladmin -h myhost -u root -p create dbname
shell> mysqldump -h host -u root -p dbname < dbname_backup.sql
#导出所有数据库到sql文件。
shell> mysqldump -u root -ppassword --opt >/tmp/alldatabases.sql

查询相关

#使用值“whatever”过滤显示选定的某些行。
1. mysql> SELECT * FROM [table name] WHERE [field name] = "whatever";
#连表查询
SELECT pwd,account_pwd FROM idt_user,app_account WHERE idt_user.user_uid = app_account.account_no and user_uid = 'nianchuns';
#显示所有包含name为”Bob”和phone number为“3444444”的记录。
1. mysql> SELECT * FROM [table name] WHERE name = "Bob" AND phone_number = '3444444';
#显示所有不包含name为”Bob”和phone number为“3444444”的记录,并以phone_number字段排序。
1. mysql> SELECT * FROM [table name] WHERE name != "Bob" AND phone_number = '3444444' order by phone_number;
#显示所有的name以字母“bob”开头和phone number为“3444444”的记录。
1. mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444';
#显示name以字母“bob”开头和phone number为“3444444”的第1至第5条记录。
1.mysql> SELECT * FROM [table name] WHERE name like "Bob%" AND phone_number = '3444444' limit 1,5;
#使用正则表达式查找记录。使用“正则表达式二进制”强制区分大小写。此命令查找以a开头的任何记录。
1.mysql> SELECT * FROM [table name] WHERE rec RLIKE "^a";
#返回唯一不同的记录。
1. mysql> SELECT DISTINCT [column name] FROM [table name];
#以升序或降序显示选定的记录。
1. mysql> SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC;
#返回行数。
mysql> SELECT COUNT(*) FROM [table name];
#统计指定列值的总和。
1. mysql> SELECT SUM(*) FROM [table name];
#联结表。
1.mysql> select lookup.illustrationid, lookup.personid,person.birthday from lookup left join person on lookup.personid=person.personid=statement to join birthday in person table with primary illustration id;
#

你可能感兴趣的:(mysql,mysql,数据库,运维)