Linux在線安裝mysql5.7到指定目錄

目標:

1.自定義mysql安裝目錄
2.自定義mysql數(shù)據(jù)目錄
3.正確安裝并啟動mysql
4.輸入密碼正確登錄

說明:
本文mysql下載目錄 /usr/download
本文mysql安裝目錄 /software/mysql
本文mysql數(shù)據(jù)目錄 /file/data/mysql
正文所有命令都是絕對路徑
環(huán)境:阿里云CentOS 7.5 64位

1.創(chuàng)建相關(guān)目錄
(1) 創(chuàng)建壓縮包下載目錄

# cd usr // 進入用戶目錄
# mkdir download // 創(chuàng)建安裝包目錄
# ls // 查看
bin       etc    include  lib64    local  share  tmp
download  games  lib      libexec  sbin   src

(2) 創(chuàng)建mysql安裝目錄

# cd / // 回到跟目錄
# mkdir software // 創(chuàng)建應(yīng)用安裝目錄
# cd software // 進入應(yīng)用目錄
刪除 # mkdir mysql // 創(chuàng)建mysql安裝目錄

(3) 創(chuàng)建mysql數(shù)據(jù)目錄

# cd / // 回到跟目錄
# mkdir file // 創(chuàng)建文件目錄
# cd file // 進入文件目錄
# mkdir data // 創(chuàng)建數(shù)據(jù)目錄
# cd data // 進入數(shù)據(jù)目錄
# mkdir mysql // 創(chuàng)建mysql數(shù)據(jù)目錄

2.在線下載mysql5.7
官網(wǎng)地址:https://downloads.mysql.com/archives/community/
下載地址:https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

下載地址

# 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 // 查看解壓結(jié)果
#  ls
mysql-5.7.29-linux-glibc2.12-x86_64
mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

4.復制解壓后的mysql目錄到系統(tǒng)的本地軟件目錄
在當前目錄下 /usr/download/

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

命令執(zhí)行結(jié)束后到software/mysql 下看是否復制成功

# cd / // 回到根目錄
# # cd software/mysql/ // 到文件安裝目錄
# ls
bin  docs  include  lib  LICENSE  man  README  share  support-files

看到以上表示已經(jīng)成功解壓到指定目錄
5.創(chuàng)建mysql用戶組和mysql用戶

# cd / // 回到根目錄
# groupadd mysql // 創(chuàng)建mysql用戶組
# useradd -r -g mysql mysql // 創(chuàng)建mysql用戶

如果出現(xiàn)

groupadd: group 'mysql' already exists

表示已經(jīng)存在mysql用戶組(useradd時同理),則繼續(xù)下一步
6.關(guān)聯(lián)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/的權(quán)限
當前操作在根目錄下

# chmod -R 755 /software/mysql/

8.安裝libaio依賴包

# yum search libaio // 查詢是否已安裝libaio依賴包
# yum install libaio // 如果沒安裝,則安裝

9.初始化mysql命令

# cd /software/mysql/bin // 進入應(yīng)用安裝的bin目錄下
# ./mysqld --user=mysql --basedir=/software/mysql --datadir=/file/data/mysql --initialize // 初始化垢揩,注意目錄

執(zhí)行成功后最后一句為

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

其中@localhost:后面為初始密碼
10.啟動mysql服務(wù)

# cd / // 回到根目錄
# sh /software/mysql/support-files/mysql.server start // 啟動服務(wù)

上面啟動mysql服務(wù)命令是會報錯的,因為沒有修改mysql的配置文件状囱,報錯內(nèi)容大致如下:

/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/mysql/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 // 賦予權(quán)限

13.修改my.cnf文件

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

修改為以下內(nèi)容

[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
#限定用于每個數(shù)據(jù)庫線程的棧大小涉馅。默認設(shè)置足以滿足大多數(shù)應(yīng)用
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
#批量插入數(shù)據(jù)緩存大小,可以有效提高插入效率枯跑,默認為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  ]

第一行為日志
第二行為狀態(tài)惨驶,OK 表示啟動成功
若啟動時報錯

Starting MySQL.The server quit without updating PID file

可能時權(quán)限不組,重新執(zhí)行第 6 步

15.登錄mysql
當前為根目錄

# mysql -uroot -p 
-bash: mysql: command not found

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

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

再執(zhí)行登錄命令mysql -u root -p焕数,密碼為第 9 步中的密碼纱昧,密碼輸入正確后如圖:

成功登錄

16.成功進入但是無法操作數(shù)據(jù)庫

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$_
注意以 分號 結(jié)尾
輸出以下表示修改成功

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> 

嘗試執(zhí)行

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登錄權(quán)限不足,具體修改方法如下

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; // 刷新數(shù)據(jù)庫
Query OK, 0 rows affected (0.00 sec)

mysql> exit // 退出

重啟mysql

# cd / // 回到根目錄
# etc/init.d/mysqld restart // 重啟灼捂,等待重啟完成
# mysql -u root -p // 然后再輸入密碼即可

重要
如果從第15步不記得,則直接重新改密碼
操作前確認mysql停止服務(wù)

# /etc/init.d/mysqld stop
# 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; // 刷新權(quán)限
mysql> exit; // 退出
mysql> select host,user,authentication_string from user; // 查看是否更新成功
如圖才表示更新成功

參考文章:
1.安裝到指定目錄
linux安裝mysql詳細步驟
2.下載和復制
linux系統(tǒng)安裝mysql
3.登錄成功后提示修改密碼
【mysql】You must reset your password using ALTER USER statement before executing this statement報錯處理
4.mysql command not found
解決linux mysql命令 bash: mysql: command not found 的方法
5.使用 update 更新 authentication_string和修改 etc/my.cnf 文件無密碼進入mysql
在MySQL登錄時出現(xiàn)Access denied for user 'root'@'localhost' (using password: YES) 拒絕訪問悉稠,并可修改MySQL密碼
6.安裝 libaio 庫
linux下安裝mysql5.6,指定安裝目錄
7.通過 mysqld_safe 安全模式無密碼登錄mysql艘包;有和無原密碼 更新密碼的猛;修改 host 為 % ;重要
linux修改mysql數(shù)據(jù)庫密碼
8.刷新權(quán)限(必須步驟):flush privileges;
linux中修改mysql數(shù)據(jù)庫密碼
9.MySQL5.7及后續(xù)版本 改密碼無password字段
10.linux 為 my.cnf想虎;windows 為 my.ini
my.ini文件參數(shù)中文注釋
11.查看mysql user表 Host列為%是什么意思
12.linux 常用命令
linux 查看數(shù)據(jù)庫和表 mysql 命令
13.正確修改密碼 重要
Mysql5.7忘記root密碼及mysql5.7修改root密碼的方法
14.遠程無法連接mysql
本地無法連接遠程服務(wù)器

常用命令
// 啟動mysql
# /etc/init.d/mysqld start

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

// 重啟mysql
# /etc/init.d/mysqld restart
// 以上需要執(zhí)行第 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 

// 查看數(shù)據(jù)庫
mysql> show databases;

//查看表說明
mysql> describe user;

// 查看mysql端口號
mysql> show variables like 'port';

// 切換數(shù)據(jù)表
mysql> use mysql;

// 更新密碼為 TesT22$_
update mysql.user set authentication_string=password('TesT22$_') where user='root';

// 刷新權(quán)限
mysql> flush privileges;
// 退出
mysql> exit;

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

// 查看mysql狀態(tài)
# service mysqld status
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市磷醋,隨后出現(xiàn)的幾起案子猫牡,更是在濱河造成了極大的恐慌,老刑警劉巖邓线,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淌友,死亡現(xiàn)場離奇詭異煌恢,居然都是意外死亡,警方通過查閱死者的電腦和手機震庭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門瑰抵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人器联,你說我怎么就攤上這事二汛。” “怎么了拨拓?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵肴颊,是天一觀的道長。 經(jīng)常有香客問我渣磷,道長婿着,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任醋界,我火速辦了婚禮竟宋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘形纺。我一直安慰自己丘侠,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布逐样。 她就那樣靜靜地躺著蜗字,像睡著了一般。 火紅的嫁衣襯著肌膚如雪官研。 梳的紋絲不亂的頭發(fā)上秽澳,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天闯睹,我揣著相機與錄音戏羽,去河邊找鬼。 笑死楼吃,一個胖子當著我的面吹牛始花,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播孩锡,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼酷宵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了躬窜?” 一聲冷哼從身側(cè)響起浇垦,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎荣挨,沒想到半個月后男韧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朴摊,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年此虑,在試婚紗的時候發(fā)現(xiàn)自己被綠了甚纲。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡朦前,死狀恐怖介杆,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情韭寸,我是刑警寧澤春哨,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站恩伺,受9級特大地震影響悲靴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜莫其,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一癞尚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧乱陡,春花似錦浇揩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至爽彤,卻和暖如春养盗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背适篙。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工往核, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人嚷节。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓聂儒,卻偏偏與公主長得像,于是被迫代替她去往敵國和親硫痰。 傳聞我的和親對象是個殘疾皇子衩婚,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容