MySQL经常使用操做

MySQL经常使用操做mysql


更改root密码linux

首先查看MySQL服务有没有启动:ps aux |grep mysqlsql

没启动把它启动:/etc/init.d/mysqld startshell

而后用命令登陆mysql:mysql -uroot    quit退出来数据库

image.png

mysql命令是不能直接在root用户下用的,由于他在/usr/local/mysql/bin/mysql目录下,安全

须要更改环境变量PATH,增长mysql绝对路径:export PATH=$PATH:/usr/local/mysql/bin/服务器

image.png

要想永久生效须要把它放到:vi /etc/profile 配置文件里,放到最后边socket

执行:source /etc/profile 环境变量才能生效ide

命令:mysql -uroot -p -p:指定他的密码,若是密码为空直接回车就进来了ui

image.png

怎样设置root密码:

mysqladmin -uroot password '123456789' (例如咱们设12345789)

设置完密码怎样进入:

方法一:mysql -uroot -p  而后输入设定的密码,例123456789  -p参数意思是指定他的密码

方法二:mysql -uroot -p '123456789' 直接给他指定上密码

image.png

更改密码:

例如咱们原来的密码为123456789改为987654321,格式以下

mysqladmin -uroot password '123456789' password '987654321'

密码重置

 第一步,更改配置文件:vi /etc/my.cnf//增长skip-grant 意思是忽略受权,就是在操做mysql的时候省略输入密码这一步

 wKiom1mVTteiSO0hAABmCo9Xj2M973.png 

 第二步,重启mysql服务:/etc/init.d/mysqld restart

image.png

 第三步,登陆mysql输命令:mysql -uroot 直接就进来来 不须要密码

 第四步,切换到mysql库里边更改一个表:use mysql;

image.png

 第五步,输入命令:update user set password=password('aminglinux') where user='root'; 里边横线部分aminglinux是你要设置的新密码,更改完quit退出来

image.png

 第六步,在编辑:vi /etc/my.cnf 把skip-grant去掉 由于一直加着它其余用户也不须要密码这样不安全

image.png

 第七步,重启:/etc/init.d/mysqld start



链接MySQL

 方法有几种:

 1.链接本机:mysql -uroot -p123456   //-u用户名;-p密码

 

2.链接远程

好比用A服务器去连接B服务器的mysql,须要输入远程的的IP、端口。

-h选项,远程mysql的IP。-P选项,意思是指定端口

 例如,用本机连3306端口:mysql -uroot -p123456 -h127.0.0.1 -P3306

 

3.利用socket来连接它,这种方法只适合在本机,由于mysql监听的是3306端口跟socket。-S来指定它的socket

 mysql -uroot -p123456 -S/tmp/mysql.sock

image.png


4.连接mysal以后来操做一些命令 

mysql -uroot -p123456 -e “show databases” -e意思是把全部的数据库都列出来,这种状况使用在shell脚本里边

wKiom1mVdqGBZ68-AADytSECJd4294.png



MySQL经常使用命令

 运行mysql的命令必需要先链接mysql,在mysql里边运行这些命令,在外边是不能识别的,一样外边的命令在里边也不能识别。

 进入mysql命令:mysql -uroot -p123456789

 1.查询库:show databases

show databases;查看都有什么数据库

image.png

 

2.切换库:use

use mysql;切换到某一个库下边,例如mysql库

image.png

 

3.查看库里的表:

show tables;把全部表所有列出来


4.查看表里的字段:desc

desc user;后边跟你要查询的表,如desc user;


5.查看表怎么建立的:show create table

show create table user\G; 命令后边跟你要查看的表,如user表,\G意思是它的竖排显示

image.png


6.查看当前用户:select user();

select user();由于默认登录的是root

image.png


7.查看当前使用的数据库:select database();

select database();

image.png

切换一下在查看

image.png


8.建立库:create database ;

create database db1; (db1,是本身起的库名字)

image.png

你发现多了一个db1

image.png


9.建立表:

先进入到库里边use db1; 在建立表(例如建立一个叫t1的表):create table t1(`id`  int(4), `name` char(40));

建立完表以后要给他定义字段,第一个字段叫id,格式为init最长为4。第二个字段叫name,char字符串,最长为40

image.png

还能够定义后边的字段

image.png


10.删除表:

drop table 后边跟表的名字

image.png

 

11.查看当前数据库版本:

select version();

image.png

12.查看数据库状态:show status;

13.查看各参数:show variables; 


14.查看指定的参数

例如你想查看但记不清了,只知道前边,那就能够采用通配来匹配%,例如:show variables like 'max_connect%';

image.png

例如slow相关的

image.png


15.修改参数:

set global max_connect_errors=1000;例如修改max_connect_errors为1000

image.png


16.查看队列:

show processlist; 至关于在linux里边用ps或者top来查看进程,能够看到哪些用户在连它,用户都在进行什么操做,很重要

image.png

 更完整的查看:show full processlist;

image.png



MySQL建立用户以及受权

怎样设置新用户以及密码 

grant all on *.* to 'user1' identified by 'passwd'; user1是用户;passwd意思是你本身设置的密码

image.png

 建立:grant all on *.* to 'user1'@'127.0.0.1' identified by 'passwd';

 登陆:mysql -uuser1 -ppasswd -h127.0.0.1 由于他默认使用的socket,因此要指定-h

给他受权localhost这样就不用-h指定IP了 

grant all on *.* to 'user1'@'localhost' identified by 'passwd'; 

 mysql -uuser1 -ppasswd

 根据具体的权限去受权:grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd';

 针对全部的IP去受权:grant all on db1.* to 'user3'@'%' identified by 'passwd';

 查看全部的受权:show grants;  默认查看的是root,由于root没有受权因此是空的

查看指定用户的受权

须要指定用户加IP:show grants for user2@192.168.133.1;


经常使用SQL语句

 怎么查看其它库里的表:select count(*) from mysql.user; 好比查看mysql库里的user表

image.png

 查看库里全部的内容:select * from mysql.db; 这个*通常不要用,由于库里的东西有不少,耗费时间

 查看一个字段:select db from mysql.db;

image.png

 查看两个字段:select db,user from mysql.db;

image.png

 模糊查询:select * from mysql.db where host like '192.168.%'\G;好比查询以192.168.开头的ip字段

 插入内容数据:insert into db1.t1 values (1, 'abc');

image.png

name是个字符串尽可能要加的上单引号'',数字能够不加

image.png

image.png

 三行都生效:update db1.t1 set name='aaa' where id=1;

image.png

删除指定id的表:delte from db1.t1 where id=1;

 清空一个表:truncate table db1.t1; 只清空表里的内容,而表里的结构还留着。后边跟表的名字例如db1库里的t1表

image.png

 直接删除表:drop table db1.t1;

image.png

 把数据库也删了:drop database db1;

image.png

注意:删除表和清空表的操做尽可能不要作!!!!!!!!!!!!!!!!!!



MySQL数据库的备份与恢复

 备份库:mysqldump -uroot -p123456 mysql > /tmp/mysql.sql     -u指定用户;-p指定密码;后边跟你要备份的库(如mysql),而后把内容重定向到一个文件里,这个文件就咱们备份的库文件

  image.png

 

恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql

还能够恢复到其余的库,好比mysql2,咱们先建立一个mysql2库,命令:

mysql -uroot -paminglinux -e "create database mysql2"

image.png

而后再把它恢复过去

image.png

 

备份表 mysqldump -uroot -p123456 mysql user > /tmp/user.sql 在库后边加上表名字就行,先库在表,例如mysql库里的user表

image.png


 恢复表 mysql -uroot -p123456 mysql < /tmp/user.sql 只须要写一个库的名字就能够,不须要跟表的名字

image.png

 

备份全部库 mysqldump -uroot -p -A >/tmp/123.sql   -A表示全部

image.png

 

只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql

相关文章
相关标签/搜索