linux 安装mysql 指定目录_Linux在线安装mysql5.7到指定目录
目標(biāo):
1.自定義mysql安裝目錄
2.自定義mysql數(shù)據(jù)目錄
3.正確安裝并啟動(dòng)mysql
4.輸入密碼正確登錄
說(shuō)明:
本文mysql下載目錄 /usr/download
本文mysql安裝目錄 /software/mysql
本文mysql數(shù)據(jù)目錄 /file/data/mysql
正文所有命令都是絕對(duì)路徑
環(huán)境:阿里云CentOS 7.5 64位
1.創(chuàng)建相關(guān)目錄
(1) 創(chuàng)建壓縮包下載目錄
# cd usr // 進(jìn)入用戶目錄
# 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 // 進(jìn)入應(yīng)用目錄
刪除 # mkdir mysql // 創(chuàng)建mysql安裝目錄
(3) 創(chuàng)建mysql數(shù)據(jù)目錄
# cd / // 回到跟目錄
# mkdir file // 創(chuàng)建文件目錄
# cd file // 進(jìn)入文件目錄
# mkdir data // 創(chuàng)建數(shù)據(jù)目錄
# cd data // 進(jìn)入數(shù)據(jù)目錄
# mkdir mysql // 創(chuàng)建mysql數(shù)據(jù)目錄
下載地址
# cd / // 回到根目錄
# cd usr/download // 進(jìn)入安裝包下載目錄
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz // 下載安裝包,等待下載完成
下載中
下載完成
3.解壓
在當(dāng)前目錄 /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.復(fù)制解壓后的mysql目錄到系統(tǒng)的本地軟件目錄
在當(dāng)前目錄下 /usr/download/
# cp mysql-5.7.29-linux-glibc2.12-x86_64 /software/mysql -r // 執(zhí)行過(guò)程稍長(zhǎng),也可以用 mv 命令直接移動(dòng)
命令執(zhí)行結(jié)束后到software/mysql 下看是否復(fù)制成功
# 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時(shí)同理),則繼續(xù)下一步
*6.關(guān)聯(lián)myql用戶到mysql用戶組中
當(dāng)前操作在根目錄下
#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)限
當(dāng)前操作在根目錄下
# chmod -R 755 /software/mysql/
8.安裝libaio依賴包
# yum search libaio // 查詢是否暗轉(zhuǎn)libaio依賴包
# yum install libaio // 如果沒(méi)安裝,則安裝
9.初始化mysql命令
# cd /software/mysql/bin // 進(jìn)入應(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.啟動(dòng)mysql服務(wù)
# cd / // 回到根目錄
# sh /software/mysql/support-files/mysql.server start // 啟動(dòng)服務(wù)
上面啟動(dòng)mysql服務(wù)命令是會(huì)報(bào)錯(cuò)的,因?yàn)闆](méi)有修改mysql的配置文件,報(bào)錯(cuò)內(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配置文件
當(dāng)前為根目錄
# 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腳本復(fù)制到/etc/init.d
# cp software/mysql/support-files/mysql.server /etc/init.d/mysqld // 復(fù)制
# 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
#限定用于每個(gè)數(shù)據(jù)庫(kù)線程的棧大小。默認(rèn)設(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ù)緩存大小,可以有效提高插入效率,默認(rèn)為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.啟動(dòng)mysql
# /etc/init.d/mysqld start // 啟動(dòng)
也可以這樣啟動(dòng)
# cd software/mysql/support-files/
# sh mysql.server start
啟動(dòng)時(shí)
Starting MySQL.Logging to '/file/data/mysql/iZ8vbadihs67tm2a228lw4Z.err'.
... [ OK ]
第一行為日志
第二行為狀態(tài),OK 表示啟動(dòng)成功
15.登錄mysql
當(dāng)前為根目錄
# mysql -uroot -p
-bash: mysql: command not found
提示找不到mysql命令,原因:這是由于系統(tǒng)默認(rèn)會(huì)查找/usr/bin下的命令,如果這個(gè)命令不在這個(gè)目錄下,當(dāng)然會(huì)找不到命令,我們需要做的就是映射一個(gè)鏈接到/usr/bin目錄下,相當(dāng)于建立一個(gè)鏈接文件。
# ln -s /software/mysql/bin/mysql /usr/bin // 第一個(gè)字母是小寫(xiě) L
再執(zhí)行登錄命令mysql -u root -p,密碼為第 9 步中的密碼,密碼輸入正確后如圖:
成功登錄
16.成功進(jìn)入但是無(wú)法操作數(shù)據(jù)庫(kù)
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$_
注意以 分號(hào) 結(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
提示以下錯(cuò)誤
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>
這是因?yàn)閞oot登錄權(quán)限不足,具體修改方法如下
mysql> exit // 先退出mysql命令行
Bye
// 當(dāng)前為根目錄
# /etc/init.d/mysqld stop // 停止mysql
Shutting down MySQL.. [ OK ]
# cd software/mysql/bin/ // 進(jìn)入mysql安裝的命令行目錄
# sh mysqld_safe --skip-grant-tables & // 安全模式登錄mysql
安全模式登錄mysql
mysql // 在上一步之后直接輸入mysql,進(jìn)入 mysql命令行
mysql> use mysql; // 輸入這句,成功后會(huì)提示如下
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'; // 輸入這句,成功后會(huì)提示如下
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ù)庫(kù)
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 // 進(jìn)入mysql安裝的bin目錄
# sh mysqld_safe --skip-grant-tables & // 安全模式啟動(dòng)
mysql // 直接鍵入 mysql,進(jìn)入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; // 查看是否更新成功
如圖才表示更新成功
常用命令
// 啟動(dòng)mysql
# /etc/init.d/mysqld start
// 停止mysql
# /etc/init.d/mysqld stop
// 重啟mysql
# /etc/init.d/mysqld restart
// 以上需要執(zhí)行第 12.將mysql腳本復(fù)制到/etc/init.d
// 進(jìn)入mysql的bin目錄
# cd software/mysql/bin
// 安全模式啟動(dòng),需要cd 到mysql的bin目錄
# sh mysqld_safe --skip-grant-tables &
// 鍵入
mysql
// 登錄
# mysql -u root -p
// 查看數(shù)據(jù)庫(kù)
mysql> show databases;
//查看表說(shuō)明
mysql> describe user;
// 切換數(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
總結(jié)
以上是生活随笔為你收集整理的linux 安装mysql 指定目录_Linux在线安装mysql5.7到指定目录的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 风压和功率计算公式轴流式_风机的风压、风
- 下一篇: Python后端---使用Django+