離線安裝 mysql
離線安裝 mysql
一、ubuntu arm
- 下載安裝包
- 官網地址
- 下載壓縮包

- 上傳壓縮包
# 將本地壓縮包上傳至服務器 $ scp mysql-8.4.6-linux-glibc2.28-aarch64.tar.xz root@host:/root/mysql/
- 解壓
# 轉到壓縮包目錄 $ cd /root/mysql/ # 解壓壓縮包 $ sudo tar -xvJf mysql-8.4.6-linux-glibc2.28-aarch64.tar.xz $ sudo mv mysql-8.4.6-linux-glibc2.28-aarch64 /usr/local/mysql - 配置
- 創建數據目錄
# 創建 mysql 數據目錄 $ sudo mkdir -p /data/mysql/data # 創建 mysql 日志目錄 $ sudo mkdir -p /data/mysql/log # 創建 mysql pid 目錄 $ sudo mkdir -p /usr/local/mysql/data/ - 創建配置文件
# 轉到 etc 目錄 $ cd /etc # 創建配置文件 $ sudo touch my.cnf - 注意 :
my.cnf 不能隨意修改名稱,啟動 mysql.server 會讀取該配置文件(可嘗試修改 mysql.server 文件)

- 寫入配置
[mysqld] # 啟用 mysql_native_password plugin mysql_native_password=ON # 跳過權限表 #skip_grant_tables=1 # mysql 啟動用戶 user=root # 綁定 IP bind-address=0.0.0.0 # 端口,為了安全不使用默認端口 port=13306 # 安裝目錄,沒有安裝到默認目錄 /usr/local/mysql 下, # 使用自帶的 mysql.server 腳本啟動mysql服務必須配置 basedir=/usr/local/mysql log-error=/usr/local/mysql/data/mysql.err pid-file=/usr/local/mysql/data/mysql.pid # 數據目錄 datadir=/data/mysql/data # 允許最大連接數 max_connections=100 # 允許連接失敗的次數。 max_connect_errors=10 # 服務端使用的字符集 character-set-server=utf8mb4 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB # 查詢日志 general_log = 1 general_log_file = /data/mysql/log/mysql.log # 慢查詢日志 slow_query_log = 1 slow_query_log_file = /data/mysql/log/slow.log long_query_time = 2 # 錯誤日志 log_error = /data/mysql/log/error.log # 二進制日志 server_id = 1 log_bin = /data/mysql/log/mysql-bin log_bin_index=/data/mysql/log/mysql-bin.index binlog_format=MIXED binlog_expire_logs_seconds = 604800 max_binlog_size=500M [mysql] # 設置命令行客戶端默認字符集 default-character-set=utf8mb4 [client] # 設置mysql客戶端默認字符集 default-character-set=utf8mb4
- 創建數據目錄
- 初始化 正常情況無錯誤信息輸出
# 轉到 mysql 二進制文件目錄 $ cd /usr/local/mysql/bin # 初始化 mysql $ sudo ./mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=root --initialize - 啟動 正常情況無錯誤信息輸出
# 轉到 support-files 目錄 $ cd /usr/local/mysql/support-files # 啟動 mysql $ sudo ./mysql.server start - 停止
# 轉到 support-files 目錄 $ cd /usr/local/mysql/support-files # 啟動 mysql $ sudo ./mysql.server stop - 狀態
# 轉到 support-files 目錄 $ cd /usr/local/mysql/support-files # 啟動 mysql $ sudo ./mysql.server status - 環境變量
# 配置環境變量 $ sudo export PATH=$PATH:/usr/local/mysql/bin - 服務啟動
# 拷貝啟動文件 $ sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/ # 刷新單元服務 $ sudo systemctl daemon-reload # 啟動服務 $ sudo systemctl start mysql - 重裝
# 刪除 data 目錄相關文件 $ sudo rm -rf /data/mysql/data/* # 刪除 log 目錄相關文件 $ sudo rm -rf /data/mysql/log/* # 重新初始化 $ sudo ./mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/data --user=root --initialize # 重新啟動 $ sudo ./mysql.server start - 參考
二、重置密碼
- 停止服務
# 停止 mysql $ sudo systemctl stop mysql - 啟動 mysql 并跳過權限表
# 轉到 bin 目錄 $ cd /usr/local/mysql/bin # 啟動 mysql 并跳過權限表 $ sudo ./mysqld_safe --skip-grant-tables & - 進入數據庫
$ sudo ./mysql - 使用 mysql 數據庫
$ use mysql; - 設置運行遠程連接
$ update user set host='%' where user ='root'; - 刷新權限表
$ FLUSH PRIVILEGES; - 修改密碼
# 修改密碼,'root'@'%'(root:賬號,%:host),'root'(新密碼) $ ALTER USER 'root'@'%' IDENTIFIED BY 'root'; // 【棄用配置】 // $ update user set authentication_string='root' where user='root'; # 刷新權限表 $ FLUSH PRIVILEGES;- 注意:設置完密碼登錄出現錯誤(ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%')
# 刷新權限表 $ FLUSH PRIVILEGES; # 將密碼設置為空 $ update user set authentication_string='' where user='root'; # 刷新權限表 $ FLUSH PRIVILEGES; # 重新登錄(使用連接工具 navicat 無密碼連接后會提示修改密碼,后面可以使用修改后的密碼) $ sudo ./mysql -u root -p
- 注意:設置完密碼登錄出現錯誤(ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%')
- 退出
$ exit; - 重啟
$ sudo systemctl restart mysql.server.service - 開機自啟
$ sudo systemctl enable mysql.server.service- 注意:非 root 賬號,可能會出現:
==== AUTHENTICATING FOR org.freedesktop.systemd1.reload-daemon === Authentication is required to reload the systemd state. Authenticating as: apricot,,, (apricot) Password: - 解決
# 打開策略文件 $ sudo vi /usr/share/polkit-1/actions/org.freedesktop.systemd1.policy # 修改節點(manage-units),將所有值改成(true) <action id="org.freedesktop.systemd1.manage-units"> <description gettext-domain="systemd">Manage system services or other units</description> <message gettext-domain="systemd">Authentication is required to manage system services or other units.</message> <defaults> <allow_any>yes</allow_any> <allow_inactive>yes</allow_inactive> <allow_active>yes</allow_active> </defaults> </action> # 刷新單元服務 $ systemctl daemon-reload # 重啟polkit $ systemctl restart polkit; - 參考
- 注意:非 root 賬號,可能會出現:
- 驗證
$ sudo ./mysql -u root -p - 參考
如有幫助,歡迎轉載,轉載請注明原文鏈接:http://www.rzrgm.cn/study10000/p/19133673

浙公網安備 33010602011771號