文档章节

mysql常用操作

土茯苓
 土茯苓
发布于 2016/09/28 15:47
字数 1094
阅读 34
收藏 3

1、连接数据库的格式

mysql -h IP -u用户名 -p密码;

1.1连接远程数据库:

mysql -h 192.168.1.214 -uroot -p123456

查看数据库:

show databases;

查看数据库中的用户

user mysql;
select user from user;

更改本地root用户密码:

### 格式:mysqladmin -u用户名 -p旧密码 password 新密码
mysqladmin -uroot -p123456 password lilaizhen

注意:新安装的mysql数据库,由于开始时root没有密码,所以在第一次修改root用户密码时,-p旧密码一项就可以省略。如下:

mysqladmin -uroot password 123456

更改普通用户密码:

update user set password=PASSWORD(‘123456′) where user=’用户名';
FLUSH PRIVILEGES;–立即生效,不需要重启

创建数据库:

create database ttest1;

此时可在OS上查看已经创建的数据库,如下:

ps aux |grep mysqld 查看mysql的运行所在的位置,以及数据文件存放位置
ls /usr/local/mysql/data

删除数据库:

drop database test1;

此时会同时会删除OS上的数据库文件夹

创建数据库的表:

create table testtable(id int(4));

查看数据库的表:

show tables;

显示数据库表的结构:

describe testtable;

向表中插入数据:

insert into testtable values(1);

删除插入的数据

delete from testtable where id=’1′;

清空表

delete from testtable;

删除表

drop table testtable;

创建用户:

create user 'ailanni'@'%' identified by 'ailanni';

删除用户:

drop user 用户名;

用户授权

grant privileges on database.table to user@ip identified by 'password';

注意该命令可以同时创建用户并授权,也就是说我们不需要先创建用户。

privileges表示权限。

grant all on test.* to 'ailanni'@'%' identified by 'ailanni';
FLUSH PRIVILEGES;

privileges权限分类:

all: 允许做任何事(和root一样)。这个平时使用的比较多,实际生产环境中就是一个用户对一个数据库。

usage: 只允许登录–其它什么也不允许做。

alter: 修改已存在的数据表(例如增加/删除列)和索引。

create: 建立新的数据库或数据表。

delete: 删除表的记录。

drop: 删除数据表或数据库。

index: 建立或删除索引。

insert: 增加表的记录。

select: 显示/搜索表的记录。

update: 修改表中已存在的记录。

replication slave: 权限应授予从服务器所使用的将当前服务器连接为主服务器的账户。没有这个权限,从服务器不能发出对主服务器上的数据库所发出的更新请求。这个权限在配置mysql主从时,会使用到。

注意在给用户授权时,一定不要这样授权:

grant all on *.* to ‘ailanni’@’%’ identified by ‘ailanni';

因为这样就相当于把ailanni这个用户授予最高权限,具有管理所有数据库的能力,相当于root用户的权限。这样是非常不安全的。

查看用户权限:

show grants for ‘ailanni’@’%';

用户权限删除:

revoke privilege on database.table from user@ip identified by 'password';

例子:

revoke all on ailanni.* from ‘ailanni’@’%’ identified by ‘ailanni';

数据库备份:

格式:mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql;

数据库恢复:

mysql -hhostname -uusername -ppassword databasename< backupfile.sql;

有关数据库用户及数据库的删除顺序:

在删除数据库或者用户时,一定要先进行权限的删除。然后在进行数据库和用户的删除,否则会产生其他不可预知的错误。

查看mysql版本:

mysql -V  // v为大写

mysql修改本地主机连接:

1登录mysql,选择数据库:

use mysql;

2.通过update命令来更新user表中的host记录--user必须是数据库中没有的

update user set host='%' where user='root';

3.刷新一下

FLUSH PRIVILEGES;

4.重启数据库

如果这样的话 远程是可以连接的但是本地就无法连接了。

为什么会出现这个情况呢?

是因为在mysql数据库的user的host字段中,已经明确拒绝本地登录。我们现在需要修改这个字段,把该字段中的不需要的相关记录全部删除。

先停止数据库,然后使用mysqld_safe –skip-grant-tables &方式启动数据库。这种方式启动数据库,跳过了mysql数据库的安全验证。

/etc/init.d/mysqld stop
mysqld_safe –skip-grant-tables &
mysql -uroot mysql
use mysql;
select host,user from user;

可以使用mysql连接工具删除root以外的所有数据。

也可以使用sql语句删除:

delete from user where host='127.0.0.1';
delete from user where host='::1';
delete from user where host='localhost';

 

© 著作权归作者所有

共有 人打赏支持
上一篇: js代码片段
土茯苓
粉丝 32
博文 174
码字总数 198211
作品 0
朝阳
高级程序员
私信 提问
数据库MySql在python中的使用

  随着需要存储数据的结构不断复杂化,使用数据库来存储数据是一个必须面临的问题。那么应该如何在python中使用数据库?下面就在本篇博客中介绍一下在python中使用mysql。   首先,本博客...

码农47
2018/02/05
0
0
《数据库 系列 》 - 目录

MySql 系列 《MySql 系列》- 数据库操作 《MySql 系列》- 常用函数 《MySql 系列》- 常用Sql SqlServer 系列 《SqlServer 系列》 - 函数 《SqlServer 系列》 - 事务已满处理 《SqlServer 系列...

Kimisme
2018/01/03
3
0
MySQL命令操作(Linux平台)

Linux shell 批量创建数据库/表 Shell 脚本如下: 执行脚本后,结果如下: MySQL 从常用操作命令: 显示数据库 show databases; 切换数据库 use top123; 显示数据库表 show tables; 修改主键...

长平狐
2013/01/06
50
0
MySQL命令操作(Linux平台)

Linux shell 批量创建数据库/表 Shell 脚本如下: 执行脚本后,结果如下: MySQL 从常用操作命令: 显示数据库 show databases; 切换数据库 use top123; 显示数据库表 show tables; 修改主键...

晨曦之光
2012/03/02
286
0
开发环境迁移到Docker笔记

最近因为被苹果爸爸的新系统卡顿的恶心到吐,决定把开发系统迁移到win10,然后又把所有的开发环境docker化,docker大法好 这里记录下常用本地开发的常用的docker操作 一些常用操作 创建新的网络...

anoty
2018/03/05
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Windows同步对象Event和Linux的条件变量

最近在看一些同步对象模拟的东东,特别对在Windows下如何模拟条件变量折腾了很久。 1 Windows同步对象Event 微软有一个很有意思的同步对象,某种程度上和Linux的条件变量很相似。但秉承微软一...

shzwork
9分钟前
0
0
从上往下打印出二叉树的每个节点,同层节点从左至右打印。

//第一种做法 public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList <Integer> li=new ArrayList<Integer>(); ArrayList <TreeN......

南桥北木
19分钟前
0
0
linux 服务管理 Crontba、Ntpdate、Logrotate、Supervisor

crond linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。 另外, 由于使用者自己也可以设置计划任务,所以,...

狼王黄师傅
49分钟前
3
0
Sobel算子和Scharr滤波器

Sobel算子在数学上的本质是微分,对离散信号,是求邻域内的增量。 基本原理:在图像上,对图像信号在某点进行微分,表示图像的某个特征(如,强度、色调或者饱和度)在该点的变换程度。以强度...

yepanl
今天
2
0
Jenkins API 使用

Jenkins 是一款流行的开源持续集成工具,可以用来做一些软件开发的自动化工作,如打包,测试,自动部署等。 Jenkins 中有 view 和 job 的概念, view 相当于组, job 则是具体的任务。 view...

YanWen
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部