MySQL中的主鍵問題和賦許可權問題

2021-08-18 12:56:18 字數 2544 閱讀 1755

今天分享一下我所學習的mysql中的主鍵問題,和賦許可權問題。

mysql中的主鍵問題

1、mysql的兩種主鍵。

primary key 和not null auto_incriment

在建立mysql表時,給乙個字段新增了主鍵primary key

在insert資料時可以不用insert主鍵,mysql會自動新增0,但是在第二次insert時沒有填寫值mysql資料庫還是預設新增0,會導致有重複的主鍵,這是不可以的。所有在定義了primary key時,在insert資料時要給主鍵填寫值。

在建立mysql表時,給乙個字段新增了主鍵not null auto_increment=1;

這也是乙個主鍵。是自增長的以1為開始。這個欄位是可以不用填寫值的,mysql資料庫會自動給填寫值,不會出現primary key的狀況。

altertablecsvmysqladdprimarykey(id);

altertablecsvmysqlchangeididint(10)notnullauto_increment=1;

2、刪除自增長的主鍵id

先刪除自增長再刪除主鍵。

altertablecsvmysqlchangeididint(10);//刪除自增長

altertablecsvmysqldropprimarykey;//刪除主建

mysql給使用者賦值許可權

因為遇到了問題:(sqlexception: access denied for @』localhost』 (using password: no))

下面先看一下mysql的許可權說明:

mysql> grant 許可權1,許可權2,…許可權n on 資料庫名稱.表名稱 to 使用者名稱@使用者位址 identified by 『連線口令』;

許可權1,許可權2,…許可權n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個許可權。

當許可權1,許可權2,…許可權n被all privileges或者all代替,表示賦予使用者全部許可權。

當資料庫名稱.表名稱被*.*代替,表示賦予使用者操作伺服器上所有資料庫所有表的許可權。

使用者位址可以是localhost,也可以是ip位址、機器名字、網域名稱。也可以用』%』表示從任何位址連線。

『連線口令』不能為空,否則建立失敗。

看一下實際操作:

mysql>grant select,insert,update,delete,create,drop on test.employee [email protected] by 『123』;

給來自192.168.10.10的使用者root分配可對資料庫test的employee表進行select,insert,update,delete,create,drop等操作的許可權,並設定口令為123。

mysql>grant all privileges on test.* [email protected] by 『123』;

給來自192.168.10.10的使用者root分配可對資料庫test所有表進行所有操作的許可權,並設定口令為123。

mysql>grant all privileges on *.* [email protected] by 『123』;

給來自192.168.10.10的使用者root分配可對所有資料庫的所有表進行所有操作的許可權,並設定口令為123。

mysql>grant all privileges on *.* to root@localhost identified by 『123』;

給本機使用者root分配可對所有資料庫的所有表進行所有操作的許可權,並設定口令為123。

我新建了乙個表csvmysql,現在要給test資料庫的csvmysql資料表賦許可權:

mysql>grant all on test.* to root@』localhost』 identified by 『2017』;

然後禁止read_only模式。

mysql>set global read_only=off ;/*set global read_only=0; 禁止read_only模式*/

set global read_only=on/off是dba經常用的乙個操作:進行主備切換的時候,一般都會先對主庫進行唯讀操作(on),然後主備同步完成後,再把備庫置為可讀寫(off)。這樣可以避免切換的過程中雙寫引起髒資料。

mysql 新設定使用者或更改密碼後需用flush privileges重新整理mysql的系統許可權相關表,否則會出現拒絕訪問,還有一種方法,就是重新啟動mysql伺服器,來使新設定生效。

flush privileges;/* set session binlog_format = 『row』; set global binlog_format = 『row』;*/

上面就是mysql中主鍵問題和賦許可權問題,希望對你們有幫助。

mysql中建立使用者和賦許可權

1.建立oozie使用者,符號表示僅限於遠端登入 create user oozie identified by password 2.賦予許可權 all指所有功能,如果all被替換為select,則只有查詢功能。on後面的oozie指資料庫名稱 to後面oozie指賬號,很簡單。grant all...

mysql 給使用者賦權和刪除許可權

mysql通過 grant 授予許可權 revoke 撤銷許可權 授予使用者許可權 grant all privileges on 層級 to 使用者名稱 主機 identified by 密碼 授予wang使用者全域性級全部許可權 grant all privileges on to wang i...

MySQL 三 主鍵和編碼問題

show tables from test 表示檢視其他表又不想跳轉 五種約束 主鍵約束 primary key 每張資料表只能存在乙個主鍵 主鍵保證記錄的唯一性 主鍵自動為not null,也就是說必須要為主鍵賦值。但如果主鍵選擇了auto increment,那麼不需要手動賦值。auto inc...