centos 修改mysql的預設資料庫目錄

2021-06-29 13:11:34 字數 1310 閱讀 9840

關於這個問題,網上說的內容很多,基本上可以解決問題,我現在分析的是為什麼要這麼操作,哪些操作是重複的!

get_mysql_option

()get_mysql_option mysqld datadir "/var/lib/mysql"

datadir="$result"

get_mysql_option mysqld socket "$datadir/mysql.sock"

socketfile="$result"

get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"

errlogfile="$result"

get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"

mypidfile="$result"

上面一段**是從mysqld這個指令碼中擷取出來的,我把他分成兩部分

1.函式,這個函式接收3個引數,主要功能是讀取1中

的配置,

匹配2的值,如果存在,那麼設定result為匹配的值,如果不存在就是用預設$3的值

2.呼叫了4次函式,定義了4個變數,我主要講一下第乙個datadir,從my.cnf中讀取–datadir設定的值,如果存在那麼datadir就是my.cnf中的值,如果不存在,那麼就是預設的/var/lib/mysql

相信大家應該能看明白吧,修改預設資料庫的位置,2選1,要麼是my.cnf中配置,要麼就是my.cnf中留空,修改mysqld中的預設值

socketfile這個也是同理,不過他的位置預設是在資料庫檔案的目錄下面,所以my.cnf中不設定,那麼就是預設,如果設定了,就是你自定義的位置

再來說下mysql這個命令,大家應該都知道是幹什麼,如果你修改了資料庫的預設位置,那麼sock這個檔案預設也會改位置。

執行這個命令應該會報錯,如何讓他不報錯,兩種方法

1.在my.cnf [client] 下面增加socket=」/***/***/mysql.sock」 mysql.sock的真實位置

2.ln -s 「/***/***/***/mysql.sock」 「/var/lib/mysql/mysql.sock」 在原始的mysql.sock位置做乙個軟鏈,指向真實的位置

其實就是mysql命令執行時需要mysql.sock,但是預設值是在 /var/lib/mysql/mysql.sock,如果你改了位置,那麼一定要讓這個命令能找到這個檔案的真實位置。

像這種服務配置什麼的,主要是了解它是怎麼執行的,才能對症下藥,找到好的修改或者解決問題的辦法。

mysql之GROUP CONCAT修改預設長度

今天使用 group concat 聚合其中某一列的時候竟然報錯了,具體報錯資訊 row 3168 was cut by group concat time 14.477000s.sql 是 select rong liang,yong liang,level adapt niandu,perrfe...

阿里雲centos安裝mysql資料庫預設密碼

第一種 grep temporary password var log mysqld.log 如果你通過這條命令列能獲取到初始密碼,那基本上你就可以進入mysql資料庫,重製你的密碼了。但是我碰到的情況是,mysqld.log檔案為空,沒有內容。於是我各種搜網上的解決方案,找了很久找到了一篇,可以設...

Centos下 修改mysql密碼

centos下 修改mysql密碼 a wget b rpm ivh mysql community release el7 5.noarch.rpm c.兩次進行yum y install mysql mysql server mysql devel,安裝成功。vim etc my.cnf ser...