日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

linux 安装mysql 指定目录_Linux在线安装mysql5.7到指定目录

發布時間:2024/3/26 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 安装mysql 指定目录_Linux在线安装mysql5.7到指定目录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目標:

1.自定義mysql安裝目錄

2.自定義mysql數據目錄

3.正確安裝并啟動mysql

4.輸入密碼正確登錄

說明:

本文mysql下載目錄 /usr/download

本文mysql安裝目錄 /software/mysql

本文mysql數據目錄 /file/data/mysql

正文所有命令都是絕對路徑

環境:阿里云CentOS 7.5 64位

1.創建相關目錄

(1) 創建壓縮包下載目錄

# cd usr // 進入用戶目錄

# mkdir download // 創建安裝包目錄

# ls // 查看

bin etc include lib64 local share tmp

download games lib libexec sbin src

(2) 創建mysql安裝目錄

# cd / // 回到跟目錄

# mkdir software // 創建應用安裝目錄

# cd software // 進入應用目錄

刪除 # mkdir mysql // 創建mysql安裝目錄

(3) 創建mysql數據目錄

# cd / // 回到跟目錄

# mkdir file // 創建文件目錄

# cd file // 進入文件目錄

# mkdir data // 創建數據目錄

# cd data // 進入數據目錄

# mkdir mysql // 創建mysql數據目錄

下載地址

# cd / // 回到根目錄

# cd usr/download // 進入安裝包下載目錄

# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz // 下載安裝包,等待下載完成

下載中

下載完成

3.解壓

在當前目錄 /usr/download

# tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

# ls // 查看解壓結果

# ls

mysql-5.7.29-linux-glibc2.12-x86_64

mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

4.復制解壓后的mysql目錄到系統的本地軟件目錄

在當前目錄下 /usr/download/

# cp mysql-5.7.29-linux-glibc2.12-x86_64 /software/mysql -r // 執行過程稍長,也可以用 mv 命令直接移動

命令執行結束后到software/mysql 下看是否復制成功

# cd / // 回到根目錄

# # cd software/mysql/ // 到文件安裝目錄

# ls

bin docs include lib LICENSE man README share support-files

看到以上表示已經成功解壓到指定目錄

5.創建mysql用戶組和mysql用戶

# cd / // 回到根目錄

# groupadd mysql // 創建mysql用戶組

# useradd -r -g mysql mysql // 創建mysql用戶

如果出現

groupadd: group 'mysql' already exists

表示已經存在mysql用戶組(useradd時同理),則繼續下一步

*6.關聯myql用戶到mysql用戶組中

當前操作在根目錄下

#chown -R mysql:mysql /software/mysql/

#chown -R mysql:mysql /file/data/mysql/

#chown -R mysql /software/mysql/

#chown -R mysql /file/data/mysql

7.更改mysql安裝文件夾mysql/的權限

當前操作在根目錄下

# chmod -R 755 /software/mysql/

8.安裝libaio依賴包

# yum search libaio // 查詢是否暗轉libaio依賴包

# yum install libaio // 如果沒安裝,則安裝

9.初始化mysql命令

# cd /software/mysql/bin // 進入應用安裝的bin目錄下

# ./mysqld --user=mysql --basedir=/software/mysql --datadir=/file/data/mysql --initialize // 初始化,注意目錄

執行成功后最后一句為

2020-06-14T06:33:29.412232Z 1 [Note] A temporary password is generated for root@localhost: *a%idaUrn1r_

其中@localhost:后面為初始密碼

10.啟動mysql服務

# cd / // 回到根目錄

# sh /software/mysql/support-files/mysql.server start // 啟動服務

上面啟動mysql服務命令是會報錯的,因為沒有修改mysql的配置文件,報錯內容大致如下:

/software/mysql/support-files/mysql.server: line 239: my_print_defaults: command not found

/software/mysql/support-files/mysql.server: line 259: cd: /usr/local/mysql: No such file or directory

Starting MySQLCouldn't find MySQL server (/usr/local/mysql/[FAILED]ld_safe)

11.修改Mysql配置文件

當前為根目錄

# vim /software/mysql/support-files/mysql.server // 編輯文件

編輯前

# Set some defaults

mysqld_pid_file_path=

if test -z "$basedir"

then

basedir=/usr/local/mysql

bindir=/usr/local/mysql/bin

if test -z "$datadir"

then

datadir=/usr/local/mysql/data

fi

sbindir=/usr/local/mysql/bin

libexecdir=/usr/local/mysql/bin

else

bindir="$basedir/bin"

if test -z "$datadir"

then

datadir="$basedir/data"

fi

sbindir="$basedir/sbin"

libexecdir="$basedir/libexec"

fi

編輯后

# Set some defaults

mysqld_pid_file_path=

if test -z "$basedir"

then

basedir=/software/mysql // 修改了這里

bindir=/software/mysql/bin // 修改了這里

if test -z "$datadir"

then

datadir=/file/data/mysql // 修改了這里

fi

sbindir=/software/bin // 修改了這里

libexecdir=/software/mysql/bin // 修改了這里

else

bindir="$basedir/bin"

if test -z "$datadir"

then

datadir="$basedir/data"

fi

sbindir="$basedir/sbin"

libexecdir="$basedir/libexec"

fi

保存并退出

12.將mysql腳本復制到/etc/init.d

# cp software/mysql/support-files/mysql.server /etc/init.d/mysqld // 復制

# chmod 755 /etc/init.d/mysqld // 賦予權限

13.修改my.cnf文件

# vi /etc/my.cnf // 編輯my.cnf文件

修改為以下內容

[client]

no-beep

socket =/software/mysql/mysql.sock

# pipe

# socket=0.0

port=3306

[mysql]

default-character-set=utf8

[mysqld]

basedir=/software/mysql

datadir=/file/data/mysql

port=3306

pid-file=/software/mysql/mysqld.pid

#skip-grant-tables

skip-name-resolve

socket = /software/mysql/mysql.sock

character-set-server=utf8

default-storage-engine=INNODB

explicit_defaults_for_timestamp = true

# Server Id.

server-id=1

max_connections=2000

query_cache_size=0

table_open_cache=2000

tmp_table_size=246M

thread_cache_size=300

#限定用于每個數據庫線程的棧大小。默認設置足以滿足大多數應用

thread_stack = 192k

key_buffer_size=512M

read_buffer_size=4M

read_rnd_buffer_size=32M

innodb_data_home_dir = /file/data/mysql

innodb_flush_log_at_trx_commit=0

innodb_log_buffer_size=16M

innodb_buffer_pool_size=256M

innodb_log_file_size=128M

innodb_thread_concurrency=128

innodb_autoextend_increment=1000

innodb_buffer_pool_instances=8

innodb_concurrency_tickets=5000

innodb_old_blocks_time=1000

innodb_open_files=300

innodb_stats_on_metadata=0

innodb_file_per_table=1

innodb_checksum_algorithm=0

back_log=80

flush_time=0

join_buffer_size=128M

max_allowed_packet=1024M

max_connect_errors=2000

open_files_limit=4161

query_cache_type=0

sort_buffer_size=32M

table_definition_cache=1400

binlog_row_event_max_size=8K

sync_master_info=10000

sync_relay_log=10000

sync_relay_log_info=10000

#批量插入數據緩存大小,可以有效提高插入效率,默認為8M

bulk_insert_buffer_size = 64M

interactive_timeout = 120

wait_timeout = 120

log-bin-trust-function-creators=1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

保存并退出

14.啟動mysql

# /etc/init.d/mysqld start // 啟動

也可以這樣啟動

# cd software/mysql/support-files/

# sh mysql.server start

啟動時

Starting MySQL.Logging to '/file/data/mysql/iZ8vbadihs67tm2a228lw4Z.err'.

... [ OK ]

第一行為日志

第二行為狀態,OK 表示啟動成功

15.登錄mysql

當前為根目錄

# mysql -uroot -p

-bash: mysql: command not found

提示找不到mysql命令,原因:這是由于系統默認會查找/usr/bin下的命令,如果這個命令不在這個目錄下,當然會找不到命令,我們需要做的就是映射一個鏈接到/usr/bin目錄下,相當于建立一個鏈接文件。

# ln -s /software/mysql/bin/mysql /usr/bin // 第一個字母是小寫 L

再執行登錄命令mysql -u root -p,密碼為第 9 步中的密碼,密碼輸入正確后如圖:

成功登錄

16.成功進入但是無法操作數據庫

mysql> use mysql

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改密碼

mysql> ALTER USER USER() IDENTIFIED BY 'TesT22$_';

以上表示密碼修改為 TesT22$_

注意以 分號 結尾

輸出以下表示修改成功

ERROR 2006 (HY000): MySQL server has gone away

No connection. Trying to reconnect...

Connection id: 3

Current database: *** NONE ***

Query OK, 0 rows affected (0.00 sec)

mysql>

嘗試執行

mysql> use mysql

提示以下錯誤

No connection. Trying to reconnect...

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

ERROR:

Can't connect to the server

mysql>

這是因為root登錄權限不足,具體修改方法如下

mysql> exit // 先退出mysql命令行

Bye

// 當前為根目錄

# /etc/init.d/mysqld stop // 停止mysql

Shutting down MySQL.. [ OK ]

# cd software/mysql/bin/ // 進入mysql安裝的命令行目錄

# sh mysqld_safe --skip-grant-tables & // 安全模式登錄mysql

安全模式登錄mysql

mysql // 在上一步之后直接輸入mysql,進入 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 host = '%' where user = 'root'; // 輸入這句,成功后會提示如下

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> select host,user from user; // 查看是否修改成功,成功后提示如下

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

| host | user |

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

| % | root |

| localhost | mysql.session |

| localhost | mysql.sys |

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

3 rows in set (0.00 sec)

mysql> flush privileges; // 刷新數據庫

Query OK, 0 rows affected (0.00 sec)

mysql> exit // 退出

重啟mysql

# cd / // 回到根目錄

# etc/init.d/mysqld restart // 重啟,等待重啟完成

# mysql -u root -p // 然后再輸入密碼即可

重要

如果從第15步不記得,則直接重新改密碼

# cd software/mysql/bin // 進入mysql安裝的bin目錄

# sh mysqld_safe --skip-grant-tables & // 安全模式啟動

mysql // 直接鍵入 mysql,進入mysql命令行

myql> update mysql.user set authentication_string=password('TesT22$_') where user='root'; // 密碼修改為 TesT22$_

mysql> flush privileges; // 刷新權限

mysql> exit; // 退出

mysql> select host,user,authentication_string from user; // 查看是否更新成功

如圖才表示更新成功

常用命令

// 啟動mysql

# /etc/init.d/mysqld start

// 停止mysql

# /etc/init.d/mysqld stop

// 重啟mysql

# /etc/init.d/mysqld restart

// 以上需要執行第 12.將mysql腳本復制到/etc/init.d

// 進入mysql的bin目錄

# cd software/mysql/bin

// 安全模式啟動,需要cd 到mysql的bin目錄

# sh mysqld_safe --skip-grant-tables &

// 鍵入

mysql

// 登錄

# mysql -u root -p

// 查看數據庫

mysql> show databases;

//查看表說明

mysql> describe user;

// 切換數據表

mysql> use mysql;

// 更新密碼為 TesT22$_

update mysql.user set authentication_string=password('TesT22$_') where user='root';

// 刷新權限

mysql> flush privileges;

// 退出

mysql> exit;

// 查看是否更新成功

select host,user,authentication_string from user;

// 查看mysql狀態

# service mysqld status

總結

以上是生活随笔為你收集整理的linux 安装mysql 指定目录_Linux在线安装mysql5.7到指定目录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。