mysql和mariadb

mysql/mariadb

定义环境变量

临时定义环境变量

export PATH=$PATH:/usr/local/mariadb/bin/

/usr/local/mariadb/bin/ 这个路径是安装mysql的包所在路径,我安装的是mariadb

永久定义环境变量

vim /etc/profile

增加代码

export PATH=$PATH:/usr/local/mariadb/bin/

生效文件

source /etc/profile

设置更改**root**密码

指定使用账号root密码登录,-u后面为账号,-p后面可以跟密码,没有特殊字符的可以不加单引号,有特殊字符的需要加单引号;

默认是没有密码的

mysql -uroot

mysql -uroot -p'password'

设置密码

在空密码下指定密码为admin123

mysqladmin -uroot password 'admin123'

在有密码的情况下修改密码
旧密码admin123修改为admin@123

mysqladmin -uroot -padmin123 password 'admin@123'

忘记root密码

编辑配置文件

vim /etc/my.cnf

在[mysqld]下增加一行skip-grant

[mysqld]

skip-grant //跳过密码验证

重启mysql服务

/etc/init.d/mysqld restart

空密码登录mysql,在mysql里面更新新密码

mysql -uroot

use mysql; //进入mysql库

desc user; //查看user表的字段,里面可以找到password和

authentication_string这两个字段

5.6版本以前使用password字段存放密码

update user set password=password('admin123') where user='root';

5.7版本以后使用authentication字段存放密码

update user set authention_string=password('admin123') where

user='root';

我安装的是mariadb10.4.14版本,之前不知道为什么按照上面两种方法都不行,现在用第三种方法验证成功:

前面操作一样无密码进入数据库,然后直接执行:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码');

重新授权

flush privileges;

数据库设置完成后,退出quit;

设置配置文件

vim /etc/my.cnf

删除参数

skip-grant

重启mysql服务

/etc/init.d/mysqld restart

测试验证

mysql -uroot -padmin123

使用密码admin23登录成功

连接MySQL

常用的连接命令

连接本机

mysql -uroot -padmin123

连接远程机器127.0.0.1为ip,3306为端口

mysql -uroot -padmin123 -h127.0.0.1 -P3306

使用sock方式连接,只适合本机连接

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

使用-e参数,不进入数据库,在shell环境下使用mysql内部命令查看所有数据库

mysql -uroot -padmin123 -e "show databases"

MySQL常用命令

必须登录mysql才能使用的命令
使用命令后面必须加;号

查询库 show databases;
切换库 use mysql;
查看库里的表 show tables;
查看表里的字段 desc tb_name;
查看建表语句 show create table tb_name\G;
查询mysql所有用户和限制主机select user,host from user;
查询指定用户的权限show grants for '用户名'@'限制ip';
查看当前用户 select user();
查看当前使用的数据库 select database();
创建库 create database db1;
创建表 use db1; create table t1(id int(4), name char(40));
查看当前数据库版本 select version();
查看数据库状态 show status;
查看各参数 show variables; show variables like 'max_connect%';
修改参数 set global max_connect_errors=1000;
查看队列 show processlist; show full processlist;

查询库

MariaDB [mysql]> show databases;

切换库

MariaDB [mysql]> use mysql;

查看库里面的表

MariaDB [mysql]> show tables;

查看表里面的字段

注意:格式是
desc [表名];
例如:desc user; 查看的就是user表里面的字段
MariaDB [mysql]> desc user;

查看创建表的语句

MariaDB [mysql]> show create table user\G;

查询**mysql**所有用户和限制主机

MariaDB [mysql]> select user,host from user;

+-------------+-----------+

| User | Host |

+-------------+-----------+

| | jinkai03 |

| | localhost |

| mariadb.sys | localhost |

| mysql | localhost |

| root | localhost |

+-------------+-----------+

5 rows in set (0.002 sec)

查看当前是哪个用户

select user();

MariaDB [mysql]>select user();

+----------------+

| user() |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00 sec)

查看当前所使用的数据库

select database();

MariaDB [mysql]> select database();

+------------+

| database() |

+------------+

| mysql |

+------------+

1 row in set (0.00 sec)

创建一个新库

create database 库名;

MariaDB [mysql]> create database db1;

Query OK, 1 row affected (0.00 sec)

创建一个新表

mysql> use db1; //切换到db1库

mysql>create table t1(id int(4),name char(40)); //注意,这里的字段名id和name,表t1

查看当前数据库的版本

MariaDB [mysql]>select version();

查看**mysql**当前状态

MariaDB [mysql]>show status;

很多参数都是可以在/etc/my.cnf中定义的,并且有部分参数是可以在线编辑的

查看mysql的参数

MariaDB [mysql]>show variables;

修改mysql的参数

MariaDB [mysql]>show variables like 'max_connect%'; //模糊查询

max_connect,后面必须加%

MariaDB [mysql]>set global max_connect_errors = 1000; //修改

max_connect_errors参数为1000

MariaDB [mysql]>show variables like 'max_connect_errors';

查看当前mysql服务器队列

MariaDB [mysql]>show processlist;

MariaDB [mysql]>show full processlist; //查看哪些用户在连接数据库(完整版)

Mysql用户管理

创建用户

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

其中,all表示所有的权限(如读、写、查询、删除等操作);.有两个*,前者表示所有的数据库,后者表示所有的表;identified by后面跟密码,用单引号括起来。这里的user1特指localhost上的user1

grant all on db1.* to 'user2'@'%' identified by 'admin123';

用户和主机的IP之间有一个符号@。另外,命令中主机IP可以用%,指定权限为数据库db1下的所有表。

grant INSERT,UPDATE,SELECT on . to 'user3'@'127.0.0.1' identified by 'admin123';

也可以指定权限INSERT,UPDATE,SELECT

flush privileges;

刷新授权

查看当前用户权限

show grants;

show grants for 'user1'@'192.168.186.144';

常用的sql语句

select:查看;
insert:插入;
update:更改;
drop:删除;

查看:

统计指定表的行数;

select count() from mysql.user; //count()表示统计行数;代表所有;

MariaDB [(none)]> select count(*) from mysql.user;

+----------+

| count(*) |

+----------+

| 8 |

+----------+

1 row in set (0.001 sec)

查看指定表的内容

select * from mysql.db; 它表示查询MySQL库的db表中的所有数据。当然也可以查询单个字段或者多个字段,如下所示:

select db from mysql.db; //查找mysql库下db表里面db列的内容;

select db,user from mysql.db; //查找mysql库下db表中db列与user列的内容;

模糊查询

select * from mysql.db where host like '192.168.%'; //查找mysql.db下带有192.168.字样的列出来

插入数据

insert into db1.t1 values (1,'abc');

//在db1.t1中,插入两条数据,第一条为数字1,第二条为字符串abc;

MariaDB [(none)]> select * from db1.t1;

+------+------+

| id | name |

+------+------+

| 1 | abc |

+------+------+

1 row in set (0.00 sec)

更改数据

update db1.t1 set name='aaa' where id=1;

//将db1.t1的id为1的 name内容更改为字符串aaa

MariaDB [(none)]> select * from db1.t1;

+------+------+

| id | name |

+------+------+

| 1 | aaa |

+------+------+

1 row in set (0.00 sec)

清空某个表的数据

MariaDB [(none)]> truncate table db1.t1;

Query OK, 0 rows affected (0.01 sec)

MariaDB [(none)]> select * from db1.t1;

Empty set (0.00 sec))

删除表

MariaDB [(none)]> drop table db1.t1;

Query OK, 0 rows affected (0.00 sec)

删除数据库

MariaDB [(none)]> drop database db1;

Query OK, 0 rows affected (0.01 sec)

MySQL数据库的备份与恢复

备份指定数据库

mysqldump -uroot -p'admin23' mysql > /tmp/backup/mysqlbak.sql

//将名为mysql的数据库备份到指定目录下

恢复数据库

mysql -uroot -p'admin23' mysql < /tmp/backup/mysqlbak.sql

//将指定目录下的备份文件恢复为mysql数据库

备份表

mysqldump -uroot -p'admin23' mysql user >/tmp/backup/user.sql

//将mysql下的user表备份到指定目录

恢复表

mysql -uroot -p'admin23' mysql < /tmp/backup/user.sql

//将指定目录下的表恢复到mysql库下

备份所有数据库

mysqldump -uroot -p'admin23' -A > /tmp/backup/123.sql

//将所有数据库备份到指定目录

只备份表结构

mysqldump -uroot -p'admin23' -d mysql > /tmp/backup/mysql-biaojg.sql

猜你喜欢

转载自blog.51cto.com/11451960/2637989