[mysql]Linux下MySQL数据库常用基本操作

一、MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格)

C:\>mysql -h localhost -u root -p123

二、MySQL 连接远程数据库(192.168.0.201),端口“3306”,用户名为“root”,密码“123”

C:\>mysql -h 172.16.16.45 -P 3306 -u root -p123
  1. [root@123 ~]# mysql -uroot -p123456 -h127.0.0.1 -P3306
  2.  
    Welcome to the MySQL monitor.
  3.  
    mysql> quit
  4.  
    Bye

三、MySQL 连接本地数据库,用户名为“root”,隐藏密码

C:\>mysql -h localhost -u root -p
Enter password:

四、MySQL 连接本地数据库,用户名为“root”,指定所连接的数据库为“test”

C:\>mysql -h localhost -u root -p123 -D test
mysql>select database();

查看版本
mysql>status;

 

Linux下MySQL数据库常用基本操作 

1、连接数据库

mysql -h localhost -u 用户名 -p 密码 

2、显示数据库

show databases;

3、选择数据库

use 数据库名;

4、显示数据库中的表

show tables;

5、显示数据表的结构 

describe 表名;

6、显示表中记录 

SELECT * FROM 表名

7、建库

create databse 库名;

8、建表

create table 表名 (字段设定列表);

mysql> create table name(
    -> id int auto_increment not null primary key ,
    -> uname char(8),
    -> gender char(2),
    -> birthday date );
Query OK, 0 rows affected (0.03 sec)

mysql> show tables;
+------------------+
| Tables_in_userdb |
+------------------+
| name             |
+------------------+
1 row in set (0.00 sec)

mysql> describe name;
+----------+---------+------+-----+---------+----------------+
| Field    | Type    | Null | Key | Default | Extra          |
+----------+---------+------+-----+---------+----------------+
| id       | int(11) | NO   | PRI | NULL    | auto_increment |
| uname    | char(8) | YES  |     | NULL    |                |
| gender   | char(2) | YES  |     | NULL    |                |
| birthday | date    | YES  |     | NULL    |                |
+----------+---------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

注: auto_increment 自增
     primary key    主键

9、增加记录

insert into name(uname,gender,birthday) values('张三','男','1971-10-01');

10、修改记录

update name set birthday='1971-01-10' where uname='张三';

11、删除记录

delete from name where uname='张三';

12、删除表

drop table 表名

13、删除库

1)直接删除数据库,不提醒

drop database 库名;

2)删除数据库前,有提示。

mysqladmin drop databasename 

14、备份数据库 

mysqldump -u root -p --opt 数据库名>备份名; //进入到库目录

15、恢复

mysql -u root -p 数据库名<备份名; //恢复时数据库必须存在,可以为空数据库

16、数据库授权

  格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"

例1、增加一个用户user001密码为123456,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:

mysql> grant select,insert,update,delete on *.* to user001@"%" Identified by "123456";

例2、增加一个用户user002密码为123456,让此用户只可以在localhost上登录,也可以设置指定IP,并可以对数据库test进行查询、插入、修改、删除的操作 (localhost指本地主机,即MySQL数据库所在的那台主机)

        //这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过MYSQL主机来操作test库。
        //首先用以root用户连入MySQL,然后键入以下命令:

mysql>grant select,insert,update,delete on test.* to user002@localhost identified by "123456";

17、显示当前mysql版本和当前日期

select version(),current_date; 

 

18、其他未整理的MySQL语句

root密码管理     
设置root用户的密码     mysqladmin -uroot password 'password'
修改root用户的密码     mysqladmin -uroot -p password 'password'
 
数据库,表管理     
进入mysql     mysql -h hostname -uroot -p
创建数据库     mysql> create database location
导入数据结构     mysql -uroot -p location <./location.sql
查看数据库     mysql> show databases;
进入某个库     mysql> use location;
查看表信息     mysql> show tables;
查看表结构     mysql> desc Contact;
改表名     mysql> rename table Contact to Contact_new
删除库     mysql> drop database location
删除表     mysql> drop table Contact
 
授权部分     
建立用户并授权     mysql> grant all on location.* to gk1020@'10.1.11.71' identified by 'gk1020'
取消授权     mysql> revoke all on location.* from gk1020@'10.1.11.71'
刷新权限     mysql> flush privileges
 
操作语句     
查询     mysql> select * from Contact
mysql> select count(*) from Contact
修改     mysql> update Contact set RegTime=‘2008-01-01 00:00:00’ where id=1
mysql> update Contact set RegTime=‘2008-01-01 00:00:00’,CID=1 where id=1
插入     mysql> insert into Contact values('',''…)
mysql> insert into Contact(ID,CID,Contact) values('',''…)
删除     mysql> delete from Contact where id=1
 
备份数据库location     mysqldump -uroot -p -l location >./location.sql
备份某个表     mysqldump -uroot -p -l --database location --table Contact >./contact.sql
导出数据库location的数据结构     mysqldump -d -uroot -p location >./location.sql
恢复数据库:mysql -uroot -p location < location.sql
备份数据文件和sql文件分离:mysqldump -uroot -p location contact -T backup/
导出数据: select * from contact into outfile 'contact.txt';
恢复sql文件:cat contact.sql | mysql -uroot -p location
导入数据(要跟绝对路径) mysqlimport -uroot -p zhang  /usr/local/mysql/var/backup/contact.txt
 
复制表     复制表Contact为Contact_bak     mysql> create table Contact_bak as select * from Contact
复制表Contact的结构     mysql> create table Contact_bak as select * from Contact where 1=2

查看正在执行的任务           mysql> show processlist
kill正在执行的任务      mysqladmin -uroot -p kill process_id

查看表状态:mysql> check table Contact  or mysqlcheck -uroot -p -c location Contact 
修复表:        mysql> repair table Contact  or mysqlcheck -uroot -p -r location Contact 
优化表:        mysql> optimize table Contact  or mysqlcheck -uroot -p -o location Contact

 
修改mysql密码

一、拥有原来的myql的root的密码

方法一: 

在mysql系统外,使用mysqladmin

1 mysqladmin -u root -p password "test123"
2 Enter password: 【输入原来的密码】

 

方法二: 
通过登录mysql系统

1 mysql -uroot -p
2 Enter password: 【输入原来的密码】
3 mysql>use mysql;
4 mysql> update user set password=passworD("test") where user='root';
5 mysql> exit; 

 

注意:如果Mysql的版本是5.7及以上的话update语句更换如下:

1 mysql> update user set authentication_string=passworD("test") where user='root';

 

二、忘记原来的myql的root的密码

方法三:

首先拿到操作系统的root权限,然后kill掉Mysql服务或者手动stop掉,这里我推荐使用手动stop;

1 service mysql stop

然后执行

1 mysqld_safe --skip-grant-tables &

&,表示在后台运行,不再后台运行的话,就再打开一个终端吧。

接着登陆MySQL修改密码

1 mysql
2 mysql> use mysql;
3 mysql> UPDATE user SET password=password("test123") WHERE user='root';   
4 mysql> exit; 

注意:如果Mysql的版本是5.7及以上的话update语句如下:

1 mysql> update user set authentication_string=passworD("test") where user='root';
posted @ 2019-11-28 16:55  Xu_Lin  阅读(396)  评论(0编辑  收藏  举报