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