linux下mysql多實例安裝

来源:http://www.cnblogs.com/xuchenliang/archive/2017/05/12/6843990.html
-Advertisement-
Play Games

1.MySQL多實例介紹 1.1.什麼是MySQL多實例 MySQL多實例就是在一臺機器上開啟多個不同的服務埠(如:3306,3307),運行多個MySQL服務進程,通過不同的socket監聽不同的服務埠來提供各自的服務:; 1.2.MySQL多實例的特點有以下幾點 1:有效利用伺服器資源,當單 ...


1.MySQL多實例介紹 1.1.什麼是MySQL多實例 MySQL多實例就是在一臺機器上開啟多個不同的服務埠(如:3306,3307),運行多個MySQL服務進程,通過不同的socket監聽不同的服務埠來提供各自的服務:; 1.2.MySQL多實例的特點有以下幾點 1:有效利用伺服器資源,當單個伺服器資源有剩餘時,可以充分利用剩餘的資源提供更多的服務。 2:節約伺服器資源 3:資源互相搶占問題,當某個服務實例服務併發很高時或者開啟慢查詢時,會消耗更多的記憶體、CPU、磁碟IO資源,導致伺服器上的其他實例提供服務的質量下降; 1.3.部署mysql多實例的兩種方式 第一種是使用多個配置文件啟動不同的進程來實現多實例,這種方式的優勢邏輯簡單,配置簡單,缺點是管理起來不太方便; 第二種是通過官方自帶的mysqld_multi使用單獨的配置文件來實現多實例,這種方式定製每個實例的配置不太方面,優點是管理起來很方便,集中管理; 1.4.同一開發環境下安裝兩個資料庫,必須處理以下問題
  • 配置文件安裝路徑不能相同
  • 資料庫目錄不能相同
  • 啟動腳本不能同名
  • 埠不能相同
  • socket文件的生成路徑不能相同
2.Mysql多實例安裝部署 2.1.部署環境 Red Hat Enterprise Linux Server release 6.4 2.2.安裝mysql軟體版本 2.2.1.免編譯二進位包 mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz 2.3.解壓和遷移 tar -xvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz mv mysql-5.6.21-linux-glibc2.5-x86_64 /usr/local/mysql 2.4.關閉iptables 臨時關閉:service iptables stop  永久關閉:chkconfig iptables off 2.5.關閉selinux vi /etc/sysconfig/selinux   將SELINUX修改為DISABLED,即SELINUX=DISABLED  2.6.創建mysql用戶 groupadd -g 27 mysql useradd -u 27 -g mysql mysql id mysql uid=501(mysql) gid=501(mysql) groups=501(mysql) 2.7.創建相關目錄 mkdir -p /data/mysql/ {mysql_3306,mysql_3307} mkdir /data/mysql/mysql_3306/ {data,log,tmp} mkdir /data/mysql/mysql_3307/ {data,log,tmp} 2.8.更改目錄許可權 chown -R mysql:mysql /data/mysql/  chown -R mysql:mysql /usr/local/mysql/ 2.9. 添加環境變數 echo 'export PATH=$PATH:/usr/local/mysql/bin' >>  /etc/profile  source /etc/profile   2.10.複製my.cnf文件到etc目錄 cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 2.11.修改my.cnf(在一個文件中修改即可) [client]   port=3306   socket=/tmp/mysql.sock     [mysqld_multi]   mysqld = /usr/local/mysql /bin/mysqld_safe   mysqladmin = /usr/local/mysql /bin/mysqladmin   log = /data/mysql/mysqld_multi.log     [mysqld]   user=mysql   basedir = /usr/local/mysql   sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES     [mysqld3306]   mysqld=mysqld   mysqladmin=mysqladmin   datadir=/data/mysql/mysql_3306/data   port=3306   server_id=3306   socket=/tmp/mysql_3306.sock   log-output=file   slow_query_log = 1   long_query_time = 1   slow_query_log_file = /data/mysql/mysql_3306/log/slow.log   log-error = /data/mysql/mysql_3306/log/error.log   binlog_format = mixed   log-bin = /data/mysql/mysql_3306/log/mysql3306_bin       [mysqld3307]   mysqld=mysqld   mysqladmin=mysqladmin   datadir=/data/mysql/mysql_3307/data   port=3307   server_id=3307   socket=/tmp/mysql_3307.sock   log-output=file   slow_query_log = 1   long_query_time = 1   slow_query_log_file = /data/mysql/mysql_3307/log/slow.log   log-error = /data/mysql/mysql_3307/log/error.log   binlog_format = mixed   log-bin = /data/mysql/mysql_3307/log/mysql3307_bin 2.12. 初始化資料庫 2.12.1. 初始化3306資料庫  /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3306/data --defaults-file=/etc/my.cnf   2.12.2. 初始化3307資料庫  /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3307/data --defaults-file=/etc/my.cnf   2.12.3. 檢查資料庫是否初始化成功 出現兩個”OK”      
        2.12.4. 查看資料庫是否初始化成功(2) 查看3306資料庫 [root@mysql ~]# cd /data/mysql/mysql_3306/data [root@mysql data]# ls auto.cnf  ibdata1  ib_logfile0  ib_logfile1  mysql  mysql.pid  performance_schema  test   查看3307資料庫 [root@mysql ~]# cd /data/mysql/mysql_3307/data [root@mysql data]# ls auto.cnf  ibdata1  ib_logfile0  ib_logfile1  mysql  mysql.pid  performance_schema  test 2.13.設置啟動文件 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 2.14.mysqld_multi進行多實例管理 啟動全部實例:/usr/local/mysql/bin/mysqld_multi start 查看全部實例狀態:/usr/local/mysql/bin/mysqld_multi report  啟動單個實例:/usr/local/mysql/bin/mysqld_multi start 3306  停止單個實例:/usr/local/mysql/bin/mysqld_multi stop 3306  查看單個實例狀態:/usr/local/mysql/bin/mysqld_multi report 3306  2.14.1.啟動全部實例 [root@mysql ~]# /usr/local/mysql/bin/mysqld_multi start [root@mysql ~]# /usr/local/mysql/bin/mysqld_multi report Reporting MySQL servers MySQL server from group: mysqld3306 is running MySQL server from group: mysqld3307 is running 2.15.查看啟動進程       2.16.修改密碼 mysql的root用戶初始密碼是空,所以需要登錄mysql進行修改密碼,下麵以3306為例:  mysql -S /tmp/mysql_3306.sock    set password for root@'localhost'=password('123456');  flush privileges;  下次登錄: [root@mysql ~]# mysql -S /tmp/mysql_3306.sock -p Enter password: 2.17.新建用戶及授權 一般新建資料庫都需要新增一個用戶,用於程式連接,這類用戶只需要insert、update、delete、select許可權。 新增一個用戶,並授權如下:  grant select,delete,update,insert on *.* to admin@'192.168.0.%' identified by '123456';  flush privileges 2.18.外部軟體登錄資料庫     2.19.測試成功   3.源碼安裝常見報錯信息 1:安裝mysql報錯 checking for tgetent in -lncurses... no checking for tgetent in -lcurses... no checking for tgetent in -ltermcap... no checking for tgetent in -ltinfo... no checking for termcap functions library... configure: error: No curses/termcap library found 原因: 缺少ncurses安裝包 解決方法: yum list|grep ncurses yum -y install ncurses-devel yum install ncurses-devel 2:.../depcomp: line 571: exec: g++: not found make[1]: *** [my_new.o] 錯誤 127 make[1]: Leaving directory `/home/justme/software/mysql-5.1.30/mysys' make: *** [all-recursive] 錯誤 1 解決方法: yum install gcc-c++ 3:.../include/my_global.h:909: error: redeclaration of C++ built-in type `bool' make[2]: *** [my_new.o] Error 1 make[2]: Leaving directory `/home/tools/mysql-5.0.22/mysys' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/tools/mysql-5.0.22' make: *** [all] Error 2 是因為gcc-c++是在configure之後安裝的,此時只需重新configure後再編譯make即可。 4:初始化資料庫報錯 報錯現象: root@mysql mysql-6.0.11-alpha]# scripts/mysql_install_db --basedir=/usr/local/mysql/ --user=mysql Installing MySQL system tables... ERROR: 1136  Column count doesn't match value count at row 1 150414  7:15:56 [ERROR] Aborting 150414  7:15:56 [Warning] Forcing shutdown of 1 plugins 150414  7:15:56 [Note] /usr/local/mysql//libexec/mysqld: Shutdown complete Installation of system tables failed!  Examine the logs in /var/lib/mysql for more information. You can try to start the mysqld daemon with: shell> /usr/local/mysql//libexec/mysqld --skip-grant & and use the command line tool /usr/local/mysql//bin/mysql to connect to the mysql database and look at the grant tables: shell> /usr/local/mysql//bin/mysql -u root mysql mysql> show tables Try 'mysqld --help' if you have problems with paths.  Using --log gives you a log in /var/lib/mysql that may be helpful. The latest information about MySQL is available on the web at http://www.mysql.com/.  Please consult the MySQL manual section 'Problems running mysql_install_db', and the manual section that describes problems on your OS.  Another information source are the MySQL email archives available at http://lists.mysql.com/. Please check all of the above before mailing us!  And remember, if you do mail us, you MUST use the /usr/local/mysql//scripts/mysqlbug script! 原因: 原有安裝的mysql信息沒有刪除乾凈 解決方法: 刪除/var/lib/mysql目錄

 


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

-Advertisement-
Play Games
更多相關文章
  • 轉:http://blog.csdn.net/yawinstake/article/details/6748897 ...
  • 問題: Guideline 2.1 - Performance Thank you for your resubmission. However, we discovered one or more bugs in your app when reviewed on iPhone running i ...
  • 本片博客主要介紹如何在自己的APP中添加指紋解鎖/密碼解鎖技術。主要是對蘋果的LocalAuthentication的介紹。看過之後你將會知道如何使用蘋果的指紋解鎖和本地密碼驗證功能。 ...
  • 在ionic2開發中,用android studio 打包apk的時候出現DELETE_FAILED_INTERNAL_ERROR Error while Installing APK。 我的android studio 版本是 解決方案: Android Studio > Settings> Bu ...
  • 各位可以按照順序逐條拍錯。 mysql啟動時報錯:Starting MySQL... ERROR! The server quit without updating PID file (/opt/mysql-master/data/mysql.pid) 的解決方法: 1、可能是/opt/mysql- ...
  • 當客戶伺服器不允許直接備份時,往往通過導出資料庫腳本的方式來部署-還原資料庫, 但是當資料庫導出腳本很大,用Microsoft SQL Server Management Studio執行腳本時,往往會遇到“記憶體不足”的提示。 解決辦法: 用微軟自帶的sqlcmd工具,可以導入執行。以SQL Ser ...
  • 一、基礎介紹 1、背景描述 目前我們的高可用DB的代理層採用的是360開源的Atlas,從上線以來,已穩定運行2個多月。無論是從性能上,還是穩定性上,相比其他開源組件(amoeba、cobar、MaxScale、MySQL-Proxy等),還是很出色的。 當初我們之所以選擇Atlas,主要看中它有以 ...
  • 交換分區的操作步驟如下:1. 創建分區表t1,假設有2個分區,P1,P2.2. 創建基表t11存放P1規則的數據。3. 創建基表t12 存放P2規則的數據。4. 用基表t11和分區表T1的P1分區交換。 把表t11的數據放到到P1分區5. 用基表t12 和分區表T1p2 分區交換。 把表t12的數據 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...