mysql 開發進階篇系列 29 資料庫二進位包安裝

来源:https://www.cnblogs.com/MrHSR/archive/2018/08/24/9529870.html
-Advertisement-
Play Games

概述 對於二進位安裝,優點是可以安裝到任何路徑下,靈活性好,一臺伺服器可以安裝多個mysql。缺點是已經繹過編譯,性能不如源碼編譯得好,不能靈活定製編譯參數。如果用戶即不想安裝最簡單卻不夠靈活的RPM包,又不想安裝複雜費時的源碼包,那麼已編譯好的二進位包將是最好的選擇。 一.步驟1: 解壓glib包 ...


概述  

  對於二進位安裝,優點是可以安裝到任何路徑下,靈活性好,一臺伺服器可以安裝多個mysql。缺點是已經繹過編譯,性能不如源碼編譯得好,不能靈活定製編譯參數。如果用戶即不想安裝最簡單卻不夠靈活的RPM包,又不想安裝複雜費時的源碼包,那麼已編譯好的二進位包將是最好的選擇。

一.步驟1: 解壓glib包

-- 在 /usr/local 下創建一個mysql文件夾,用來存放
[root@hsr local]# mkdir mysql
[root@hsr local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src

-- 在原有/usr/tool目錄將gz壓縮包解壓 [root@hsr tool]# tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisam_ftdump mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisamchk mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisamlog mysql-5.7.23-linux-glibc2.12-x86_64/bin/myisampack mysql-5.7.23-linux-glibc2.12-x86_64/bin/mysql mysql-5.7.23-linux-glibc2.12-x86_64/bin/mysql_client_test_embedded mysql-5.7.23-linux-glibc2.12-x86_64/bin/mysql_config_editor .....
--將解壓的文件複製到/usr/local/mysql目錄下 [root@hsr tool]# sudo cp -r mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql
--在mysql-->
mysql-5.7.23-linux-glibc2.12-x86_64路徑下 解壓的文件共9個 目錄如下:
[root@hsr mysql]#
ls mysql-5.7.23-linux-glibc2.12-x86_64 bin COPYING docs include lib man README share support-files

  註意:mysql-5.7.23-linux-glibc2.12-x86_64目錄層次要去掉,變為/usr/local/mysql 下的9個目錄,在文章後面會去掉這層。

  

二. 步驟2:    

   2.1 添加mysql用戶 useradd -r -g 用戶名 用戶組

[root@hsr mysql]# groupadd mysql
[root@hsr mysql]# useradd -r -g mysql mysql

  2.2 切換到 /usr/local/mysql 目錄下,改變目錄擁有者為mysql

[root@hsr mysql]# chown -R  mysql.mysql /usr/local/mysql

  2.3 新環境安裝libaio包 mysql 依賴於libaio

[root@hsr mysqld]# yum search libaio

三 步驟3:  

  安裝mysql,使用 --initialize,basedir 基礎目錄,datadir 為數據目錄。

[root@hsr ~]# cd /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/bin
[root@hsr bin]# ./mysqld  --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2018-08-23T06:56:21.157088Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-08-23T06:56:21.157246Z 0 [ERROR] Can't find error-message file '/usr/local/mysql/share/errmsg.sys'. Check error-message file location and 'lc-messages-dir' configuration directive.
2018-08-23T06:56:26.287087Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-08-23T06:56:27.059913Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-08-23T06:56:27.138616Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a7e28575-a6a1-11e8-af13-000c29affb65.
2018-08-23T06:56:27.154064Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-08-23T06:56:27.155635Z 1 [Note] A temporary password is generated for root@localhost: ro0ssOGT?ocf

四步驟4:

  4.1 創建RSA private key。

[root@hsr bin]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

  

  4.2 修改當前目錄擁有者為 root 用戶,修改data 目錄擁有者為 mysql

[root@hsr bin]# chown -R root:root /usr/local/mysql
[root@hsr bin]# chown -R mysql:mysql /usr/local/mysql/data

 五.步驟5 配置mysql(mysql.server)和my.cnf文件

--檢查 etc/my.cnf文件是否存在 (二進位安裝,預設配置文件在/etc/my.cnf)
    [root@hsr etc]# find -name  my.cnf
    ./my.cnf
--將support-files 目錄下的mysql.server文件複製到etc/init.d下 [root@hsr ~]# cd /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/support-files [root@hsr support-files]# cp mysql.server /etc/init.d/mysql
-- 配置/etc/init.d/mysql服務文件 添加basedir和datadir [root@hsr support-files]# vim /etc/init.d/mysql

    

   修改my.cnf  配置以下四個參數(註意:chkconfig -- level 35 mysqld on 不要加上,後面報錯,又得去掉)
    

 六.步驟6 啟動mysql

[root@hsr bin]# service mysql start
/etc/init.d/mysql: line 239: my_print_defaults: command not found
    Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe) 

--提示未找到路徑,需要把"mysql-5.7.23-linux-glibc2.12-x86_64" 文件夾去掉,使用mv 將裡面的文件移到/usr/locl/mysql下,共9個文件
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/README /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/COPYING /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/support-files /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/share /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/man /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/lib /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/include /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/docs /usr/local/mysql
[root@hsr bin]# mv /usr/local/mysql/mysql-5.7.23-linux-glibc2.12-x86_64/bin /usr/local/mysql
-- 再啟動
[root@hsr bin]# service mysql start
Starting MySQL.2018-08-24T01:06:20.545225Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
 ERROR! The server quit without updating PID file (/usr/local/mysql/data/hsr.pid).

-- 提示/var/log/mariadb/mariadb.log 不存在, 打開my.cnf 能看到定義的預設路徑
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

--創建目錄 給許可權
[root@hsr bin]# mkdir /var/log/mariadb 
[root@hsr bin]# touch /var/log/mariadb/mariadb.log 
[root@hsr bin]# chown -R mysql:mysql  /var/log/mariadb/
-- 再啟動
[root@hsr bin]# service mysql start
Starting MySQL.... ERROR! The server quit without updating PID file (/usr/local/mysql/data/hsr.pid).

-- 錯誤信息是hsr.pid進程出問題,先查看下日誌
[root@hsr ~]# cat /var/log/mariadb/mariadb.log

  
   在my.cnf中註釋上面參數(#chkconfig --level 35 mysqld on),再啟動
  
  上圖意思是不能創建mysql.sock.lock 文件,一般是許可權不足,如下設置好許可權,啟動成功
  

七 登錄mysql

[root@hsr ~]# mysql -u root -p
bash: mysql: 未找到命令

  未找到命令,是由於系統預設會查找/usr/bin下的命令,如果這個命令不在這個目錄下,就會找不到命令,需要映射一個鏈接到/usr/bin目錄下,相當於建立一個鏈接文件。

[root@hsr ~]#  ln -s /usr/local/mysql/bin/mysql /usr/bin
[root@hsr ~]# mysql -u -root -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

--錯誤信息是不能連接到本地的socket ,系統預設找到了/tmp目錄下,需要設置鏈接文件
[root@hsr tmp]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
[root@hsr ~]# mysql -u -root -p
Enter password:

 八. 設置密碼  

  8.1 打開my.cnf文件,添加skip-grant-tables,來重置密碼,如下所示
    
  8.2 啟動服務,再次登錄,在輸入密碼處按回車鍵進入。

[root@hsr ~]# vim /etc/my.cnf
[root@hsr ~]# service mysql restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 
[root@hsr ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23

  8.3 進入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> update user set authentication_string=password('123456') where user='root';
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

  退出mysql>quit;  編輯 my.cnf 註釋掉#skip-grant-tables

 8.4 重啟mysql服務,輸入修改後的密碼(123456)進入

[root@hsr ~]# service mysql restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS! 
[root@hsr ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.23

 九 遠程登錄

-- 登錄到mysql後設置許可權
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
--  再設置密碼
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
-- 設置許可權
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.00 sec)
-- 刷新許可權 
mysql>  flush privileges;
Query OK, 0 rows affected (0.01 sec)
-- 設置遠程登錄許可權
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; 
Query OK, 0 rows affected, 1 warning (0.00 sec)

  -- 在my.cnf中 添加埠,重啟服務
  

-- 測試埠是否打開
[root@hsr ~]#  firewall-cmd    --query-port=3306/tcp
no
-- 防火牆設置
[root@hsr ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
-- 重新載入
[root@hsr ~]# firewall-cmd --reload
success
-- 再次測試埠
[root@hsr ~]# firewall-cmd    --query-port=3306/tcp
yes

  -- 在windows端拼通成功
  

  --- 最後使用SQLyog連接成功
  
  

  


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

-Advertisement-
Play Games
更多相關文章
  • 這裡使用樹莓派來操作sg90的舵機。先看一下這個舵機的樣子: 這就是傳說中的SG90舵機啦,轉角是0~180. SG90舵機接線: SG90舵機有三條線:黃線,紅線和灰(還是黑?)線。 這三條線的作用是:紅線VCC,灰線GND,黃線控制線。所以我們這裡主要是操控黃線來控制舵機。 然後這裡有個非常非常 ...
  • 一、通過命令行查找埠被誰占用 1、window+R組合鍵,調出命令視窗 2、輸入命令:netstat -ano,列出所有埠的情況。在列表中我們觀察被占用的埠 3、查看被占用埠對應的PID,輸入命令:netstat -aon | findstr 9090,回車,記錄最後一位數字,即PID,這裡 ...
  • 1、環境 VMware 14.1.1 虛擬系統:Windows Server 2008 32位 2、解決辦法 打開虛擬網路編輯器 有紅框中的提示出現時,就點擊更改設置 點擊橋接模式,在VMnet信息中選擇橋接到的網卡,選擇主機當前連接到網路使用的網卡即可 ...
  • 1.ls [選項] [目錄名 | 列出相關目錄下的所有目錄和文件 -a 列出包括.a開頭的隱藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出文件的詳細信息 -c 根據ctime排序顯示 -t 根據文件修改時間排序 color[=WHEN] 用色彩辨別文件類型 WHEN 可以是'n ...
  • 首先來看一下這個測距模塊長什麼樣子: 就是HC-SR04模塊。 這個模塊有四個引腳,分別是Vcc(高電平),GND(低電平),Trig(觸發測距)以及Echo(返回測距結果)。 那麼這個模塊怎麼使用呢,資料上的說明是這樣的: 首先給出時序圖: 從上面的步驟可以看出,我們只需要測量Echo腳為高電平的 ...
  • 索引,是資料庫中專門用於幫助用戶快速查詢數據的一種數據結構。類似於字典中的目錄,查找字典內容時可以根據目錄查找到數據的存放位置,然後直接獲取即可。 以 B-tree 形式存儲: MySQL中常見索引有: 普通索引 唯一索引 主鍵索引 組合索引 1、普通索引 普通索引僅有一個功能:加速查詢 1 cre ...
  • 今年6月畢業,來到公司前前後後各種事情折騰下來,8月中旬才入職。本以為終於可以靜下心來研究技術了,但是又把我分配到了一個幾乎不做技術的解決方案部門,導致現在寫代碼的時間都幾乎沒有了,所以只能在每天下班後留在公司研究一下自己喜歡的技術,搞得特別晚才回,身心俱疲。 唉~以前天天寫代碼時覺得苦逼,現在沒得 ...
  • 事務 事務用於將某些操作的多個SQL作為原子性操作,一旦有某一個出現錯誤,即可回滾到原來的狀態,從而保證資料庫數據完整性。 1 delimiter \\ 2 create PROCEDURE p1( 3 OUT p_return_code tinyint 4 ) 5 BEGIN 6 DECLARE ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...