mysql工作經驗

来源:https://www.cnblogs.com/lene-y/archive/2018/12/28/10189615.html
-Advertisement-
Play Games

以下是根據工作中遇到各種場景用到的一些Mysql用法,比較實用,基本是語法之外的一些東西。 以下是根據工作中遇到各種場景用到的一些Mysql用法,比較實用,基本是語法之外的一些東西。 修改賬戶密碼 1.打開Mysql控制台,輸入原密碼; 2.輸入以下語法:mysql> set password fo ...


  • 以下是根據工作中遇到各種場景用到的一些Mysql用法,比較實用,基本是語法之外的一些東西。

  修改賬戶密碼

  1.打開Mysql控制台,輸入原密碼;

  2.輸入以下語法:mysql> set password for root@localhost = password('123456')。

 

  忘了root密碼,怎麼辦?

  1. 關閉正在運行的MySQL服務;

  2. 打開DOS視窗,轉到mysql\bin目錄;

  3. 輸入mysqld --skip-grant-tables 回車; --skip-grant-tables 的意思是啟動MySQL服務的時候跳過許可權表認證

  4. 再開一個DOS視窗(因為剛纔那個DOS視窗已經不能動了),轉到mysql\bin目錄;

  5. 輸入mysql回車,如果成功,將出現MySQL提示符 >;

  7. 連接許可權資料庫: use mysql;

  8. 改密碼:update user set password=password("123") where user="root";(別忘了最後加分號);

  9. 刷新許可權(必須步驟):flush privileges;

  10. 退出 quit;

  11. 註銷系統,再進入,使用用戶名root和剛纔設置的新密碼123登錄。

 

  徹底卸載mysql

  1. 控制面板里卸載Mysql;

  2. 刪除C:\Program Files\MySQL文件夾(服務安裝位置);

  3. 刪除C:\Documents and Settings\All Users\Application Data\MySQL文件夾(資料庫存貯位置);

  4. regedit打開註冊表, 刪除HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL;HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL(註冊表非必要步驟,實在沒辦法就刪); 

 

  一臺伺服器安裝多個mysql服務提供給多個項目作測試環境

  1. 停止mysql服務;

  2. 將資料庫安裝目錄和資料庫存貯目錄都複製到另外一個路徑並重命名;

  3. 複製出來的mysql文件夾的my.ini所有的預設路徑改成新的路徑,並將所有的port=3306改成3307,有兩個地方,具體如下:

    修改如下內容: 
    [client] 
    port=3307 #第一個資料庫的預設埠是3306 這裡需要另外啟用一個埠 
# The TCP
/IP Port the MySQL Server will listen on port=3307
# Path
to installation directory. basedir="E:\MySQL2\MySQL Server 5.5\" #第二個資料庫服務安裝位置
# Path
to the database root datadir="E:\MySQL2\MySQL Server 5.5\data\" #第二個資料庫存放位置

  4. 創建服務:(重點:先進入到MySql2的bin目錄下,最好先把原來的mysql環境變數刪除,防止mysqld用的是之前的文件夾里的)mysqld install MySQL2 --defaults-file="E:\MySQL2\MySQL Server 5.5\my.ini" 

  5.修改註冊表HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services 找到剛纔創建的MySQL2,

     將ImagePath修改成如下"E:\MySQL2\MySQL Server 5.5\bin\mysqld" --defaults-file="E:\MySQL2\MySQL Server5.5\my.ini" MySQL2

  6. 啟動新服務

  7.1 情況1:對於原資料庫data沒有一起拷貝,那麼需要修改資料庫密碼,新的資料庫預設密碼為空,先使用127.0.0.1登入後運行

    1. use mysql;
    2. update user set password=password('root') where user='root'3. FLUSH PRIVILEGES4. GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 

   7.2情況2:直接資料庫存貯data都一起拷貝了,那麼用戶表應該也在裡面,就直接用老的資料庫密碼登錄就行。

  刪除mysql服務

   cmd:sc delete mysql,完了之後重啟電腦生效。

 

  mysql主從備份

   1. 先看主機的

   1.1 編輯my.ini文件,找到節點[mysqld],增加三條:

    log-bin=mysql-bin

    server-id=起一個主機伺服器id

    binlog-do-db=資料庫名字

  1.2 重啟服務

  1.3.pushd C:\Program Files\MySQL\MySQL Server 5.5\bin

  1.4.mysql -h192.168.3.22 -uroot -proot

  1.5.GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by '123456';

  1.6.show master status; 通過這一步獲取到文件名和日誌索引[配置到從機需要]

  

  2.再看從機的

  2.1  編輯my.ini文件,找到節點[mysqld],增加一條:

    server-id=從機伺服器id

  2.2 重啟服務

  2.3 pushd C:\Program Files\MySQL\MySQL Server 5.5\bin

  2.4.mysql -h192.168.3.180 -uroot -proot

  2.5.change master to master_host='192.168.3.22',master_user='mysync',master_password='123456',master_log_file='mysql-bin.000004',master_log_pos=107; 

  2.6.start slave;

  2.7.show slave status\G

 

  3. 確認一致性

  3.1 對比Master_Log_File 和 Relay_Master_Log_File 是否一致;

  3.2 對比Read_Master_Log_Pos 和 Exec_Master_Log_Pos 是否一致;

  3.3 Slave_IO_Running: Yes;

  3.4 Slave_SQL_Running: Yes;

  親測斷網斷電都可恢復同步;

 

  賬戶許可權和IP限制

    //進入mysql控制台,刪除root遠程訪問許可權,僅允許本機訪問
    delete from user where user ='root' and host ='%';

    //保存
    flush privileges;

    //創建mysql只讀賬戶
    grant select on *.*  to readonly@"%" identified by     "sudy@gjwg123456";

    //創建ip限制的賬戶
    grant all privileges on *.* to 'root'@'192.100.50.73' identified by '        sudy@gjwg123456';

    //保存
    flush privileges;

  

  對N張數據結構相同的表批量增加欄位

   有時候根據模板表讓系統自動創建子表用於緩解大數據壓力和拆分業務,需要增加欄位的時候,就需要對上百張表結構進行改動。

   利用CONCAT先批量生成語句,然後全選執行即可。

   1. 增加欄位:SELECT CONCAT('alter table db_gpsround.',table_name,' add sjlsh int(1) default 0 COMMENT \'審計流水號,0未入庫,1已入庫\';') as hh FROM information_schema.tables WHERE table_schema = 'db_gpsround';

   2. 增加索引:SELECT CONCAT('alter table db_gps_xlbh.',table_name,' add index zjgxsj(zjgxsj);') as hh FROM information_schema.tables WHERE table_schema = 'db_gps_xlbh';

 

  利用mysqldump備份與還原資料庫

  備份整個資料庫
  D:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump -uroot -p123 dbparking > E:\mysql_ghost\dbparking.sql
 
  還原整個資料庫
  D:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -uroot -p123 testpark < E:\mysql_ghost\dbparking.sql

  備份表
  D:\Program Files\MySQL\MySQL Server 5.5\bin>mysqldump -uroot -p123 dbparking 表1 表2 表3> E:\mysql_ghost\dbparking.sql
  
  還原表
  同上

 

  定期備份與刪除備份

    //利用mysqldump備份,利用winrar壓縮,註意備份時會影響其他程式,儘量選擇在晚上備份
    @echo on  
      cd D:\Program Files\MySQL\MySQL Server 5.5\bin 
      set Ymd=%date:~,4%%date:~5,2%%date:~8,2%
      set filename=db_dbjs_%Ymd%
      mysqldump.exe db_dbjs -uroot -psudy1223@2016 -R>     D:\DBServerI\db_back\db_dbjs\%filename%.sql  
      c:   
      cd C:\Program Files\WinRAR
      WinRAR a -m5 -df -ep     D:\DBServerI\db_back\db_dbjs\%filename%.rar      D:\DBServerI\db_back\db_dbjs\%filename%.sql
    @echo off
    //刪除3天前的備份文件
    forfiles /p "D:\DBServerI\db_back" /s /m *.* /d -3 /c "cmd /c del @path"    

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • rocksdb(https://rocksdb.org.cn/)是臉書(facebook)公司開源的一個key-value存儲引擎,基於leveldb開發。rocksdb使用的是LSM存儲引擎,純c++編寫。rocksdb具有很好的讀寫性能。但是rocksdb的實際操作需要很好的閱讀rocksdb ...
  • 非select命令 資料庫 1.創建 //create database 庫名 2.刪除 //drop database 庫名,... 2.重命名//exec sp_renamedb '庫名','新庫名' 表 1.創建 //create table 表名 (列名 類型,...) 2.刪除 //dro ...
  • --聲明變數,同時為變數賦值 declare @n int=10 print @n --單獨使用一條語句為變數複製 set @n=20 print @n select @n=30 print @n --通過set賦值與select複製的區別 select @n=COUNT(*) from Emplo... ...
  • 1、MongoDB介紹 1.1 什麼是MongoDB ? MongoDB 是由C++語言編寫的,是一個基於分散式文件存儲的開源資料庫系統。 在高負載的情況下,添加更多的節點,可以保證伺服器性能。 MongoDB 旨在為WEB應用提供可擴展的高性能數據存儲解決方案。 MongoDB 將數據存儲為一個文 ...
  • 正文 生產環境中有一實例每天使用mysqldump備份時長達到了2個小時53分鐘,接近3個小時,還不算上備份文件歸檔的時間,這個時間對於邏輯備份來說有點久。為了提高邏輯備份效率,打算替換為使用mydumper。 對比mysqldump,mydumper具有如下特點: 1. 多線程備份 2. 備份執行 ...
  • 正常切換切換前: 主庫:SQL> select DATABASE_ROLE from v$database;DATABASE_ROLE PRIMARY SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS f ...
  • SELECT子句:用來指定查詢返回欄位,星號(*)表示返回所有欄位 SELECT [DISTINCT]*|欄位列表 #DISTINCT 用來過濾重覆數據 FROM子句:用來指定數據來源的表 FROM <表名> WHERE子句:用來定義查詢返回數據的條件 WHERE 查詢條件 GROUP BY子句:用 ...
  • 配合食用:http://www.runoob.com/mysql/mysql-data-types.html 一.數據類型 1、整型 取值範圍如果加了 unsigned,則最大值翻倍,如 tinyint unsigned 的取值範圍為(0~256)。 int(m) 里的 m 是表示 SELECT 查 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...