mysql经常使用操做

mysql默认的是没有给mysql设置密码能够直接登陆mysql

[root@zhangmengjunlinux ~]# mysql -urootlinux

Welcome to the MySQL monitor.  Commands end with ; or \g.sql

Your MySQL connection id is 2数据库

Server version: 5.1.73-log MySQL Community Server (GPL)vim


Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.安全


Oracle is a registered trademark of Oracle Corporation and/or itside

affiliates. Other names may be trademarks of their respectivepost

owners.spa


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.3d


mysql> 

可是在正常状况下为了安全考虑应该给mysql设置一个密码,用这个命令

[root@zhangmengjunlinux ~]# mysqladmin -uroot password 'zhangmengjun'密码

咱们再次不用密码是登陆不了的

[root@zhangmengjunlinux ~]# mysql -uroot

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

咱们用密码登陆,这回能登陆上了

[root@zhangmengjunlinux ~]# mysql -uroot -p 

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 6

Server version: 5.1.73-log MySQL Community Server (GPL)


Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> 

这个时候假如咱们忘记了密码是什么,咱们能够经过一个办法初始化一下首先要编辑配置文件

[root@zhangmengjunlinux ~]# vim /etc/my.cnf 

在这个里面咱们加入一条 skip_grant 不去受权

wKioL1aNMqTT9dh2AAA3kuwvDqU147.png

保存,从新启动mysql

[root@zhangmengjunlinux ~]# /etc/init.d/mysqld restart

Shutting down MySQL... SUCCESS! 

Starting MySQL.... SUCCESS!

mysql重新启动完以后就能够无密码进去了

wKiom1aNMwih0uvwAABA-3MMBgc762.png

而后咱们使用mysql库

mysql> use mysql 使用mysql库

Database changed

而后更新一个表新密码menglei

mysql> update user set password=password ('menglei') where user='root';

Query OK, 3 rows affected (0.06 sec)

Rows matched: 3  Changed: 3  Warnings: 0


mysql> 

在这里三行发生了改变,咱们去看一下

mysql> select * from user where user='root'\G;

*************************** 1. row ***************************

                 Host: localhost

                 User: root

             Password: *F13236A6862262401791328A4F70F7B2721BF475

          Select_priv: Y

          Insert_priv: Y

          Update_priv: Y

          Delete_priv: Y

          Create_priv: Y

            Drop_priv: Y

          Reload_priv: Y

        Shutdown_priv: Y

         Process_priv: Y

            File_priv: Y

           Grant_priv: Y

      References_priv: Y

           Index_priv: Y

           Alter_priv: Y

         Show_db_priv: Y

           Super_priv: Y

Create_tmp_table_priv: Y

     Lock_tables_priv: Y

         Execute_priv: Y

      Repl_slave_priv: Y

     Repl_client_priv: Y

     Create_view_priv: Y

       Show_view_priv: Y

  Create_routine_priv: Y

   Alter_routine_priv: Y

     Create_user_priv: Y

           Event_priv: Y

         Trigger_priv: Y

             ssl_type: 

           ssl_cipher: 

          x509_issuer: 

         x509_subject: 

        max_questions: 0

          max_updates: 0

      max_connections: 0

 max_user_connections: 0

*************************** 2. row ***************************

                 Host: zhangmengjunlinux.com

                 User: root

             Password: *F13236A6862262401791328A4F70F7B2721BF475

          Select_priv: Y

          Insert_priv: Y

          Update_priv: Y

          Delete_priv: Y

          Create_priv: Y

            Drop_priv: Y

          Reload_priv: Y

        Shutdown_priv: Y

         Process_priv: Y

            File_priv: Y

           Grant_priv: Y

      References_priv: Y

           Index_priv: Y

           Alter_priv: Y

         Show_db_priv: Y

           Super_priv: Y

Create_tmp_table_priv: Y

     Lock_tables_priv: Y

         Execute_priv: Y

      Repl_slave_priv: Y

     Repl_client_priv: Y

     Create_view_priv: Y

       Show_view_priv: Y

  Create_routine_priv: Y

   Alter_routine_priv: Y

     Create_user_priv: Y

           Event_priv: Y

         Trigger_priv: Y

             ssl_type: 

           ssl_cipher: 

          x509_issuer: 

         x509_subject: 

        max_questions: 0

          max_updates: 0

      max_connections: 0

 max_user_connections: 0

*************************** 3. row ***************************

                 Host: 127.0.0.1

                 User: root

             Password: *F13236A6862262401791328A4F70F7B2721BF475

          Select_priv: Y

          Insert_priv: Y

          Update_priv: Y

          Delete_priv: Y

          Create_priv: Y

            Drop_priv: Y

          Reload_priv: Y

        Shutdown_priv: Y

         Process_priv: Y

            File_priv: Y

           Grant_priv: Y

      References_priv: Y

           Index_priv: Y

           Alter_priv: Y

         Show_db_priv: Y

           Super_priv: Y

Create_tmp_table_priv: Y

     Lock_tables_priv: Y

         Execute_priv: Y

      Repl_slave_priv: Y

     Repl_client_priv: Y

     Create_view_priv: Y

       Show_view_priv: Y

  Create_routine_priv: Y

   Alter_routine_priv: Y

     Create_user_priv: Y

           Event_priv: Y

         Trigger_priv: Y

             ssl_type: 

           ssl_cipher: 

          x509_issuer: 

         x509_subject: 

        max_questions: 0

          max_updates: 0

      max_connections: 0

 max_user_connections: 0

3 rows in set (0.03 sec)


ERROR: 

No query specified


mysql> 

这个时候咱们不用密码也能登上去,咱们要先把配置文件里的skip_grant去掉

而后重新启动mysql,输入新的密码就能够登陆了

wKiom1aNNgmhDBZ7AAA3rWvmPJg191.png

mysql登陆,本地登录

[root@zhangmengjunlinux ~]# mysql -uroot -pmenglei

wKiom1aORVTyPdCOAAA53uzDo0Y743.png远程登录mysql

[root@zhangmengjunlinux ~]# mysql -uroot h192.168.140.100 -P3306 -pmenglei

wKioL1aORlaSafONAAAYcwFtAe8595.png这个时候是登录不了的,咱们来测一下有没有监听192.168.140.100 3306端口,提示不容许去链接,由于咱们尚未受权,咱们能够使用127.0.0.1去试一试,这个受权了

wKiom1aORuKz286_AABLROu7MNY976.png它能够登录上去,那咱们怎么样去给192.168.140.100受权呢,受权的语句

mysql> grant all on *.* to 'root'@'192.168.140.100' identified by 'menglei';

all是全部的权限 *.*库 表 @后面跟的是客户端的IP地址 by后面跟密码

咱们能够select看一下

mysql> select * from user where host='192.168.140.100'\G;

wKioL1aOR_2woqaMAAAyQjH5fi0463.png看一下当前登录用户是谁

mysql> select user();

wKioL1aOSGSAF612AAAZqHbbInM543.png

当本地有多个mysql时候,咱们能够经过sock登录

[root@zhangmengjunlinux ~]# mysql -uroot -S /tmp/mysql.sock -p

wKioL1aOSQXRASG3AAA7QEC-fX8563.pngmysql切换库,咱们看看有哪些库

mysql> show databases;

wKioL1aOSeDDRJyaAAAcrtYUuw0175.png

咱们能够切换库

mysql> use mysql;

Database changed

mysql> use discuz;

Database changed

mysql>  那咱们怎么去看咱们如今在哪一个库里面呢

wKioL1aOS-bjYUATAAAnztF7J9I042.png

mysql> select database();  查看在哪一个库

mysql> select user(); 查看它在哪一个用户

mysql> select version(); 查看这个用户的版本

咱们如今使用的是discuz这个库,看看这个库里边有哪些表呢,关于数据库有几个概念,首先是库,库下面是表,表下面是行,行下面有一些字段 (库-表-行-字段);那咱们首先看的是库

mysql> use discuz  这个命令能够加分号也能够不加分号,但其余的命令须要加

Database changed

看看有哪些表

mysql> show tables;

wKiom1aOTXDz6KcdAAA5erMYZBM072.png

这是这个库里面都有哪些表,咱们还能够看表有哪些行(表是怎么建立的)有包含了哪些字段

mysql> desc pre_common_admincp_cmenu;

desc 描述一个表

wKioL1aOUFqxXai4AAA74aPSL0s425.png

咱们也能够看看这个表示的建立语句

mysql> show create table  pre_common_admincp_cmenu\G;

wKiom1aOUQCQxJTcAABJ1foBEa0970.png

那这个就是pre_common_admincp_cmenu这个表怎么去建立的

那下面咱们来去建立一个库

mysql> create database mengjun;

Query OK, 1 row affected (0.02 sec)


mysql> use mengjun;

Database changed

wKiom1aOVEiTDzF8AAAZMLJ1-rA434.png

而后建立一个表

mysql> create table tb1 (`id` int(4), `name` char(40)) ENGINE=MyISAM DEFAULT CHARSET=gbk;

Query OK, 0 rows affected (0.07 sec)


建立tb1表 ,id格式是int,长度4位, name格式是char长度是40

wKiom1aOVTyBf45xAAAlyFXGUKk866.png

mysql> desc tb1;

mysql> show create table tb1\G; 能够看到建立表的语句

wKiom1aOVfryZo_NAAA5U5LAjaU948.png

在表里插入语句

mysql> insert into tb1 values (1, 'mengjun'); 由于有连个字段id 和name因此咱们要分开写,id是1,name咱们要给mengjun加入‘单引号由于是char

插入完以后咱们select一下看看

mysql> select * from tb1;

wKioL1aOVyfxuPBsAAAfwKgd7rY984.png

那咱们还能够继续插入

mysql> insert into tb1 values (2,'menglei');

wKiom1aOWMGT07WWAAAaj49wcnA986.png

固然咱们也能够单独之插入一个字段

mysql> insert into tb1 (`id`) values(2);

Query OK, 1 row affected (0.00 sec)

wKiom1aOWeeTE9QVAAAhlgxUfVA890.png

你会发现这个时候name变成NULL空了 id 仍是2

mysql> insert into tb1 (`name`) values ('55');

Query OK, 1 row affected (0.00 sec)

wKioL1aOWrHi6zDBAAAkMl4m0To195.png

咱们也能够反过来定义先name在id 

mysql> insert into tb1 (`name`,`id`) values('55',6);

wKioL1aOW6DDR4LoAAAmOPQ7EBk807.png

咱们还能够更新一个数据

mysql> update tb1 set id=5 where name='55';

wKiom1aOXELin_oEAAAypbQvZKQ685.png

下面咱们删除一行

mysql> delete from tb1 where name='55';

wKioL1aOXR_RlWk-AAAwdLfODX4523.png

清空一个表可是不能删除这个表

mysql> truncate table mengjun.tb1;

wKiom1aOXeGz8rrTAAAbajK2kqo295.png

干倒一个表

mysql> drop table tb1;

wKiom1aOXm2C1ymjAAAdAj7OJZg045.png

干倒一个库

mysql> drop database mengjun; 

wKioL1aOXwuCiyD6AAAx_9ICYEw470.png在上面咱们用过这个受权,其实受权也是建立新的用户,那咱们讲一讲其余相关的概念

mysql> grant all on discuz.* to 'user1'@'192.168.140.%' identified by 'mengjun';

Query OK, 0 rows affected (0.12 sec)

on能够指定一个库discuz.跟一个表或许.*全部的表,to 跟用户名 @跟IP %号表明通配

有时候建立了用户没有即时生效,由于数据可能保存在内存里,尚未到硬盘里,这个时候须要刷新一下权限

mysql> flush privileges; 刷新权限

Query OK, 0 rows affected (0.00 sec)


mysql> show processlist; 这是查看当前数据有哪些列队,你这个数据库若是很忙的话,它可能会有不少的查询,让咱们知道这个库具体在干些什么,就行咱们linux系统里面的ps同样咱们能够查看到都有哪些进程,任务在工做。

wKiom1aOZg7AMN3iAAAjzAx5gVQ391.png

mysql> show variables;

查看变量,这些参数均可以再/etc/my.cnf里面去定义它的,那咱们从新更改配置文件以后想让它生效得重启mysql的服务,有时候mysql的服务暂时用着它,我不想重启怎么办,能够再mysql里边操做

wKiom1aOaBGhqvbVAABNjSmY0yk569.png

mysql> set global max_connections=200;

mysql> show variables like 'max_conne%';  like就像是grep 

wKioL1aOaP-RjSueAAAijp4UjBE135.png

mysql的错误日志在data_dir下,

wKiom1aOaULhOPaHAABGlsuRo3E524.png

这里会看到和hostname同名的一个后面有err这个就是错误日志

wKioL1aOagTTRkmqAACVDOl6eJw054.png咱们找出错误去修复一个表怎么修复?

mysql> repair table discuz.pre_forum_post;

wKiom1aOaqaCAT88AAAWFjlGcIM593.png

相关文章
相关标签/搜索