golang mysql 插入_Mysql學習(一)添加一個新的用戶并用golang操作Mysql

Mysql添加一個新的用戶并賦予權限

添加一個自己的用戶到mysql

首先我們需要先用root用戶登錄mysql,但是剛安裝完沒有密碼,我們先跳過密碼

ailumiyana@ailumiyana:~/Git_Project/Go_Test$ sudo mysqld_safe --skip-grant-tables

2019-01-07T01:35:51.559420Z mysqld_safe Logging to syslog.

2019-01-07T01:35:51.563797Z mysqld_safe Logging to '/var/log/mysql/error.log'.

root登陸

ailumiyana@ailumiyana:~/Git_Project/Go_Test$ sudo mysql -u root

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

Your MySQL connection id is 4

Server version: 5.7.24-0ubuntu0.18.04.1 (Ubuntu)

Copyright (c) 2000, 2018, 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.

切換數據庫, use mysql

mysql> use mysql

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

查看mysql下的表單.

mysql> show tables;

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

| Tables_in_mysql |

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

| columns_priv |

| db |

| engine_cost |

| event |

| func |

| general_log |

| gtid_executed |

| help_category |

| help_keyword |

| help_relation |

| help_topic |

| innodb_index_stats |

| innodb_table_stats |

| ndb_binlog_index |

| plugin |

| proc |

| procs_priv |

| proxies_priv |

| server_cost |

| servers |

| slave_master_info |

| slave_relay_log_info |

| slave_worker_info |

| slow_log |

| tables_priv |

| time_zone |

| time_zone_leap_second |

| time_zone_name |

| time_zone_transition |

| time_zone_transition_type |

| user |

| user_info |

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

32 rows in set (0.00 sec)

查看user表

mysql> desc user;

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

| Field | Type | Null | Key | Default | Extra |

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

| Host | char(60) | NO | PRI | | |

| User | char(32) | NO | PRI | | |

| Select_priv | enum('N','Y') | NO | | N | |

| Insert_priv | enum('N','Y') | NO | | N | |

| Update_priv | enum('N','Y') | NO | | N | |

| Delete_priv | enum('N','Y') | NO | | N | |

| Create_priv | enum('N','Y') | NO | | N | |

| Drop_priv | enum('N','Y') | NO | | N | |

| Reload_priv | enum('N','Y') | NO | | N | |

| Shutdown_priv | enum('N','Y') | NO | | N | |

| Process_priv | enum('N','Y') | NO | | N | |

| File_priv | enum('N','Y') | NO | | N | |

| Grant_priv | enum('N','Y') | NO | | N | |

| References_priv | enum('N','Y') | NO | | N | |

| Index_priv | enum('N','Y') | NO | | N | |

| Alter_priv | enum('N','Y') | NO | | N | |

| Show_db_priv | enum('N','Y') | NO | | N | |

| Super_priv | enum('N','Y') | NO | | N | |

| Create_tmp_table_priv | enum('N','Y') | NO | | N | |

| Lock_tables_priv | enum('N','Y') | NO | | N | |

| Execute_priv | enum('N','Y') | NO | | N | |

| Repl_slave_priv | enum('N','Y') | NO | | N | |

| Repl_client_priv | enum('N','Y') | NO | | N | |

| Create_view_priv | enum('N','Y') | NO | | N | |

| Show_view_priv | enum('N','Y') | NO | | N | |

| Create_routine_priv | enum('N','Y') | NO | | N | |

| Alter_routine_priv | enum('N','Y') | NO | | N | |

| Create_user_priv | enum('N','Y') | NO | | N | |

| Event_priv | enum('N','Y') | NO | | N | |

| Trigger_priv | enum('N','Y') | NO | | N | |

| Create_tablespace_priv | enum('N','Y') | NO | | N | |

| ssl_type | enum('','ANY','X509','SPECIFIED') | NO | | | |

| ssl_cipher | blob | NO | | NULL | |

| x509_issuer | blob | NO | | NULL | |

| x509_subject | blob | NO | | NULL | |

| max_questions | int(11) unsigned | NO | | 0 | |

| max_updates | int(11) unsigned | NO | | 0 | |

| max_connections | int(11) unsigned | NO | | 0 | |

| max_user_connections | int(11) unsigned | NO | | 0 | |

| plugin | char(64) | NO | | mysql_native_password | |

| authentication_string | text | YES | | NULL | |

| password_expired | enum('N','Y') | NO | | N | |

| password_last_changed | timestamp | YES | | NULL | |

| password_lifetime | smallint(5) unsigned | YES | | NULL | |

| account_locked | enum('N','Y') | NO | | N | |

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

45 rows in set (0.03 sec)

查看user中的已存在的用戶和主機

mysql> select Host, User from user;

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

| Host | User |

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

| localhost | debian-sys-maint |

| localhost | mysql.session |

| localhost | mysql.sys |

| localhost | root |

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

4 rows in set (0.00 sec)

接著我們新增一個自己的賬戶使用

mysql> CREATE USER '填用戶名'@'localhost' IDENTIFIED BY '填密碼';

Query OK, 0 rows affected (0.04 sec)

再次查看user表

mysql> select Host, User from user;

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

| Host | User |

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

| localhost | ailumiyana |

| localhost | debian-sys-maint |

| localhost | mysql.session |

| localhost | mysql.sys |

| localhost | root |

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

5 rows in set (0.00 sec)

給新建的用戶添加權限,刷新權限后, 查看新增用戶的權限是否已經加進去.

mysql> grant insert,select,delete,update,create,drop on *.* to ailumiyana@"localhost" identified by 'qwedsa';

Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

mysql> show grants for ailumiyana@localhost;

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

| Grants for ailumiyana@localhost |

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

| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON *.* TO 'ailumiyana'@'localhost' |

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

1 row in set (0.00 sec)

當然我們自己用,當然設置所有權限,更為便捷,那么可以改成這樣子

all privileges 表示所有權限.

mysql> grant all privileges on *.* to ailumiyana@"localhost" identified by 'qwedsa';

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)

mysql> show grants for ailumiyana@localhost;

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

| Grants for ailumiyana@localhost |

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

| GRANT ALL PRIVILEGES ON *.* TO 'ailumiyana'@'localhost' |

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

1 row in set (0.00 sec)

退出,重啟服務.

mysql> exit

Bye

ailumiyana@ailumiyana:~/Git_Project/Go_Test$ service mysql restart

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===

Authentication is required to restart 'mysql.service'.

Authenticating as: ailumiyana,,, (ailumiyana)

Password:

==== AUTHENTICATION COMPLETE ===

這樣新用戶就添加進去了,也配置了適當的權限,接下來用golang簡單測試一下。

使用go-sql-driver驅動測試Mysql

先在mysql中創建一個表

mysql> create table user_info(

-> id int(4) not null primary key auto_increment,

-> name char(20) not null);

Query OK, 0 rows affected (0.29 sec)

插入兩個數據到user_info表中,然后查詢此表。

package main

import (

"github.com/astaxie/beego/logs"

"database/sql"

_ "github.com/go-sql-driver/mysql"

)

func main() {

logs.Debug("main()")

db, err := sql.Open("mysql", "ailumiyana:qwedsa@tcp(127.0.0.1:3306)/mysql")

if err != nil {

logs.Error("sql Open() err", err)

}

stmt, err := db.Prepare("Insert user_info set id=?,name=?")

if err != nil {

logs.Error("sql Prepare() err", err)

}

stmt.Exec(1, "sola")

stmt.Exec(2, "ailumiyana")

rows, err :=db.Query("SELECT * FROM user_info")

if err != nil {

logs.Error("sql Query() err", err)

}

for rows.Next() {

var uid int

var username string

err = rows.Scan(&uid, &username)

if err != nil {

logs.Error("sql rows.Scan() err", err)

}

logs.Debug(uid, username)

}

}

其中sql.Open中的 第二個從參數是DSN格式數據 :

DSN(數據源名稱)

數據源名稱有一種常見的格式,例如PEAR DB使用的它,但是沒有類型前綴(可選部分用方括號標記):

bbc0991e741ec7fc84bb7e4a05cd2839.png

DSN的完整形式:

44fa29bb65391a9cc584389eeb8504c9.png

另外此例用了beego 的日志模塊,和go-sql-driver驅動,使用前需要先用go get 下載。

go get可以根據要求和實際情況從互聯網上下載或更新指定的代碼包及其依賴包,并對它們進行編譯和安裝。在上面這個示例中,我們從著名的代碼托管站點Github上下載了一個項目(或稱代碼包),并安裝到了環境變量GOPATH中包含的第一個工作區中。

結果

ailumiyana@ailumiyana:~/Git_Project/Go_Test$ go run mysql.go

2019/01/07 14:38:08.438 [D] main()

2019/01/07 14:38:08.443 [D] 1 sola

2019/01/07 14:38:08.443 [D] 2 ailumiyana

mysql> select * from user_info

-> ;

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

| id | name |

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

| 1 | sola |

| 2 | ailumiyana |

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

2 rows in set (0.02 sec)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454932.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454932.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454932.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

云計算構建基石之Hyper-V:虛擬機管理

本文講的是云計算構建基石之Hyper-V:虛擬機管理,作為云計算的重要基石,虛擬化技術的好壞起著關鍵作用。Hyper-V作為微軟重要的虛擬化解決技術,在微軟云計算構建解決方案中,更是關鍵至關鍵,基礎之基礎。在本系列文章中,…

Delphi語言最好的JSON代碼庫 mORMot學習筆記1

mORMot沒有控件安裝,直接添加到lib路徑,工程中直接添加syncommons,syndb等到uses里 --------------------------------------------------------- 在進行網絡編程中需要JSON對象的構建與解析,這個Delphi XE自帶:{$IF CompilerVers…

3GP文件格式分析

1. 概述現在很多智能手機都支持多媒體功能,特別是音頻和視頻播放功能,而3GP文件格式是手機端普遍支持的視頻文件格式。目前很多手機都支持h263視頻編碼格式的視頻文件播放,還有些手機支持h264。音頻文件格式普遍支持amr,有些手…

mysql group concat_MySQL 的 GROUP_CONCAT 函數詳解

GROUP_CONCAT(expr) 函數會從 expr 中連接所有非 NULL 的字符串。如果沒有非 NULL 的字符串,那么它就會返回 NULL。語法如下:GROUP_CONCAT 語法規則它在遞歸查詢中用的比較多,但要使用好它并不容易。所以讓我們一起來看看吧:假設有…

ORACLE數據庫 常用命令和Sql常用語句

ORACLE 賬號相關 如何獲取表及權限 1.COPY表空間backup scottexp登錄管理員賬號system2.創建用戶 create user han identified(認證) by mima default tablespace users(默認的表空間) quota(配額)10M on users;創建賬號分配權限g…

光榮之路測試開發面試linux考題之四:性能命令

Hi,大家好我是tom,I am back.今天要給大家講講linux系統一些性能相關命令。 1.fdisk 磁盤管理 是一個強大的危險命令,所有涉及磁盤的操作都由該命令完成,包括:新增磁盤、增刪改磁盤分區等。 1.fdisk -l 查看磁盤分區情況 Disk /dev/sda: 27.8…

一起學并發編程 - 優雅關閉

Java中原來在Thread中提供了stop()方法來終止線程&#xff0c;但這個方法是不安全的&#xff0c;所以一般不建議使用。文本將介紹兩種可以優雅的終止線程的方式...<!-- more --> 第一種 在JAVA《Java多線程模式》中有一種叫Two-Phase Termination&#xff08;兩步終止&am…

mac安裝完mysql后關機特別慢_mysql-Mac終端下遇到的問題總結

為了方便啟動mysql服務&#xff0c;修改/etc/.bash_profile文件&#xff0c;如下alias mysql"/usr/local/mysql/bin/mysql"alias mysqladmin"/usr/local/mysql/bin/mysqladmin"或者alias mysqlstart"sudo /usr/local/mysql/support-files/mysql.serve…

sending data mysql slow Mysql查詢非常慢的可能原因

1.用explain看看mysql的執行情況,可以得知,task_id掃描了近20萬條數據,而且這個task_id不是索引 2.為這個task_id所在的表,將此字段添加索引后,查詢就變得很快了 轉載于:https://www.cnblogs.com/Skrillex/p/7365590.html

mybatis 添加語句返回對象_mybatis的insert語句插入數據時的返回值的實現

mybatis的insert語句插入數據時的返回值的實現,語句,返回值,那條,都是,站長站mybatis的insert語句插入數據時的返回值的實現易采站長站&#xff0c;站長之家為您整理了mybatis的insert語句插入數據時的返回值的實現的相關內容。mybatis的sql語句一般是配置在配置文件中&#xf…

打包上架

昨天寫的打包上架&#xff0c;分組到了文章&#xff0c;發現不便查看貼鏈接到這里&#xff1a; http://www.cnblogs.com/ITCoderW/articles/7597969.html 最近一個版本的審核的過程 當我們上傳到APP Store一個新的版本后 登錄ITunes Connect就可以看到相應的版本的審核的狀態 粗…

inet_pton函數和inet_ntop函數的用法及簡單實現

http://blog.csdn.net/eagle51/article/details/53157643?utm_sourceitdadao&utm_mediumreferral 這兩個函數是隨IPv6出現的新函數&#xff0c;對于IPv4地址和IPv6地址都適用。函數名中的p和n非別代表表達&#xff08;presentation&#xff09;和數值&#xff08;numeric&…

mysql 5.7 延遲同步_MySQL5.6升級5.7時出現主從延遲問題排查過程

最近在做zabbix的數據庫MySQL5.6升級5.7時&#xff0c;出現主從延遲問題&#xff0c;這個問題困擾了很久沒有解決&#xff0c;昨天終于解決了&#xff0c;整理了一下整個排查過程&#xff0c;分享給大家。環境說明&#xff1a;mysql主庫為5.6的版本&#xff0c;有四個從庫&…

架構設計--僅是軟件開發之第二大影響力?!

SDWest2006&#xff08;譯注1&#xff09;對我來說是個有趣的大會。我除了星期三之外&#xff08;當時我正飛往費城參加一個客戶會議 因此錯過了Jolt頒獎部分&#xff09;每天都在演講。我也參加了一些談話和會議&#xff1b;其中最引人關注的是Mike Cohn的計劃與估算的談話。…

WiFi密碼分享有妙招 不必口頭相傳

移動互聯網的迅速崛起&#xff0c;使得我們可以方便的使用手持移動設備進行上網。尤其是在家庭中&#xff0c;使用智能手機、平板電腦、筆記本電腦等移動設備進行上網和娛樂已經成為主流&#xff0c;臺式機上網正日漸式微。在家中時&#xff0c;我們通過無線路由器提供的WiFi網…

javaweb(二十一)——JavaWeb的兩種開發模式

一、JSPJavaBean開發模式 1.1、jspjavabean開發模式架構 jspjavabean開發模式的架構圖如下圖(圖1-1)所示 圖1-1 在jspjavabean架構中&#xff0c;JSP負責控制邏輯、表現邏輯、業務對象&#xff08;javabean&#xff09;的調用。 JSPJavaBean模式適合開發業務邏輯不太復雜的web應…

Redis基于客戶端分片的集群案例(待實踐)

說明&#xff1a; 下面的示例基本都是基于Linux去實現&#xff0c;目的是為了環境的統一&#xff0c;以便于把性能調整到最優。且基于Java。建議生產環境不要使用Windows/Mac OS這些。 在Java領域&#xff0c;基于客戶端進行分片最常用的庫應該是Jedis&#xff0c;下面基本是基…

mysql select 效能_MYSQL的聯合查詢最好是少用,效能差異巨大

同樣的功能,不同的寫法,時間和內存占用差了幾千倍,不廢話,直接上代碼第一種寫法:代碼如下:$RsDB::get($_ENV[DB],3,"SELECT * FROM _xiazhu WHERE uid IN(SELECT id FROM _user WHERE id<5000)");var_dump($Rs);內存和時間:內存使用:96514.53Kb 運行時間:1272.73m…

高效程序員應該養成的七個習慣

對于軟件工程師來說&#xff0c;工作也許意味著許多東西 -- 穩定的收入、做自己感興趣的項目、找一份更好工作的跳板&#xff0c;或者你只是喜歡與其他程序員共事。但說到“效率”&#xff0c;強調的是在一定時間內按質完成項目的能力。Phil Chu根據自己的經驗提出了高效程序員…

概率論與數理統計思維導圖知識框架_考研概率論與數理統計 綜合題型秘籍思維導圖① 隨機變量1~3章 [21考研上岸之旅]...

Hello World&#xff0c;我的朋友&#xff0c;這里是一顆小白蛋&#xff0c;大千世界&#xff0c;很高興以這樣的方式與你相遇前言在復習過程中發現概率論知識點很少且集中 所以沒有分開章節去整理王安式概率論輔導講義張宇概率論9講方浩強化班1800題 綜合題型秘籍在學習過程中…