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

相關文章
相關標籤/搜索