mysql的運(yùn)行文件是mysqld;mysqld是一個(gè)可執(zhí)行文件,代表著Mysql伺服器程序,執(zhí)行這個(gè)文件可以直接啟動(dòng)一個(gè)伺服器進(jìn)程;而mysqld_safe是一個(gè)啟動(dòng)腳本,它會(huì)間接呼叫mysqld,並且還會(huì)順帶啟動(dòng)一個(gè)監(jiān)控進(jìn)程。
本教學(xué)操作環(huán)境:Windows10系統(tǒng)、mysql8版、Dell G3電腦。
mysql的運(yùn)行檔是什麼?
Mysql啟動(dòng)選項(xiàng)和設(shè)定檔
Mysql啟動(dòng)方式
#下面的啟動(dòng)指令都需要依賴在Linux環(huán)境下設(shè)定的Mysql環(huán)境變數(shù)
mysqldmysqld是一個(gè)可執(zhí)行文件,就代表著Mysql伺服器程序,執(zhí)行這個(gè)文件可以直接啟動(dòng)一個(gè)伺服器進(jìn)程。 如果非root使用者可以用以下方式啟動(dòng),指定啟動(dòng)時(shí)讀取的設(shè)定檔。vi /etc/profile
在檔案末端加上Mysql的安裝路徑(示範(fàn)中mysql配置在/usr/local/mysql-5.7.26下,這個(gè)路徑需要依照自己的環(huán)境而定)
export PATH=/usr/local/mysql-5.7.26/bin/:$PATH
更新文件後刷新配置文件,不然不能立即生效
## source /etc/profile
mysqld?--defaults-file=/etc/my.cnf??&root使用者需要加入啟動(dòng)參數(shù)(mysql因?yàn)榘踩詥栴}不讓root使用者直接啟動(dòng),所以需要加入啟動(dòng)參數(shù)強(qiáng)制使用root帳號(hào)啟動(dòng))。
mysqld?--defaults-file=/etc/my.cnf?--user=root??&mysqld_safemysqld_safe是一個(gè)啟動(dòng)腳本,它會(huì)間接呼叫mysqld,而且還會(huì)順帶啟動(dòng)一個(gè)監(jiān)控進(jìn)程,這個(gè)監(jiān)控進(jìn)程在伺服器掛了的時(shí)候,可以自動(dòng)重新啟動(dòng)服務(wù),另外這個(gè)腳本會(huì)將伺服器程式的錯(cuò)誤訊息以及診斷訊息重新導(dǎo)向到某個(gè)檔案中記錄錯(cuò)誤日誌。 可以不指定預(yù)設(shè)設(shè)定文件,指令如下
mysqld_safe?--defaults-file=/etc/my.cnf?&mysqld_multimysqld_multi可以啟動(dòng)多個(gè)mysql資料庫實(shí)例,這裡不做探討。 mysql.server在mysq的安裝目錄其實(shí)還有一個(gè)資料夾
support-files,具體目錄是/usr/local/mysql-5.7 .26/support-files,裡面的mysql.server也是一個(gè)啟動(dòng)腳本,這個(gè)腳本會(huì)間接呼叫mysqld_safe腳本,執(zhí)行指令如下
###?路徑依照自己的mysql安裝路徑來 cd?/usr/local/mysql-5.7.26/support-files ./mysql.server?start|stop如果給這個(gè)路徑指定了軟連線
ln -s /usr/local/mysql-5.7.26/support-files/mysql.server /etc/init.d/mysql
service?mysql?stop/startMysql啟動(dòng)方式選項(xiàng)Mysql服務(wù)在啟動(dòng)時(shí)就可以指定一些啟動(dòng)參數(shù),如之前討論過的Mysql服務(wù)端和客戶端的連接方式有TCP/IP、命名管道和共享記憶體、Unix域套接字文件,如果客戶端啟動(dòng)時(shí)滿足以下幾種情況,就是和服務(wù)端採用域套接字文件通訊。
- 沒有指定
- -h
選項(xiàng)。
指定 - -h
指定了網(wǎng)域?yàn)閘ocalhost也就是
-hlocalhost。
客戶端啟動(dòng)參數(shù)指定了 - --protocol=socket
。
-h後面接的是IP位址,就算是127.0.0.1那也就是採用TCP/IP連接,那麼這都是客戶端去操作的,如果是服務(wù)端禁止採用TCP/IP通訊該如何做呢?
--user=root
mysqld?--user=root?--skip-networking?&
客戶端操作
###?采用unix域套接字文件通信?正常 [root@test?~]#?mysql?-uroot?-p [root@test?~]#?mysql?-hlocalhsot?-uroot?-p ###?采用TCP/IP連接,直接拒絕 [root@test?~]#?mysql?-h127.0.0.1?-uroot?-p mysql:?[Warning]?Using?a?password?on?the?command?line?interface?can?be?insecure. ERROR?2003?(HY000):?Can't?connect?to?MySQL?server?on?'127.0.0.1'?(111)又如指定資料庫儲(chǔ)存引擎,在Mysql中預(yù)設(shè)是InnoDB,我們可以透過啟動(dòng)選項(xiàng)修改
###?非root用戶去除--user=root選項(xiàng) mysqld?--user=root?--default-storage-engine=MyISAM##客戶端操作
mysql>?use?test; 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>?CREATE?TABLE?test( ????->????id?INT ????->?); Query?OK,?0?rows?affected?(0.00?sec) mysql>?show?create?table?test; +-------+----------------------------------------------------------------------------------------+ |?Table?|?Create?Table???????????????????????????????????????????????????????????????????????????| +-------+----------------------------------------------------------------------------------------+ |?test??|?CREATE?TABLE?`test`?( ??`id`?int(11)?DEFAULT?NULL )?ENGINE=MyISAM?DEFAULT?CHARSET=utf8?| +-------+----------------------------------------------------------------------------------------+
創(chuàng)建后的數(shù)據(jù)庫操作引擎變?yōu)镸yISAM,配置生效。
綜上Mysql如果存在多個(gè)啟動(dòng)指令可以采用**--啟動(dòng)選項(xiàng)1=值1 --啟動(dòng)選項(xiàng)2=值2 ... --啟動(dòng)選項(xiàng)n=值n**,配置修改啟動(dòng)項(xiàng)。
Mysql啟動(dòng)指令眾多,其它指令可以通過命令**mysqld --verbose --help
**查看。
選項(xiàng)的長(zhǎng)形式和短形式
在myql中其實(shí)一直有區(qū)分長(zhǎng)形式命令和短形式命令,但是我們?cè)谑褂脮r(shí)并沒有注意;
需要注意的是長(zhǎng)連接前面是兩個(gè)橫杠--
,短連接只有一個(gè)-
,另外長(zhǎng)連接指令和值之前需要有空格,短連接可以緊挨著不需要空格。
###?長(zhǎng)連接形式
mysql?--host?127.0.0.1??--user?root?--port?3306?--password
?
###?短連接形式
mysql?-h127.0.0.1?-uroot?-P3306?-p
Mysql啟動(dòng)配置文件
采用Mysql啟動(dòng)方式選項(xiàng)雖然是方便,但也帶來的一些問題,如果啟動(dòng)選項(xiàng)參數(shù)過多導(dǎo)致啟動(dòng)命令毫無可讀性而言,啟動(dòng)選項(xiàng)配置的參數(shù)只對(duì)當(dāng)前啟動(dòng)的服務(wù)生效,也就是如果下次重啟所有的啟動(dòng)參數(shù)將被還原不會(huì)被記錄,所以為了將這些啟動(dòng)參數(shù)保存,我們就需要一個(gè)配置文件默認(rèn)稱為my.cnf。
my.cnf配置文件按照啟動(dòng)的是客戶端程序還是服務(wù)端程序?qū)⑴渲梅譃榱硕鄠€(gè)組,如下所示
####?服務(wù)端啟動(dòng)配置
[server]
###?格式一:配置項(xiàng)=具體值
port=3306
###?格式二:配置項(xiàng)(沒有值的情況,配置項(xiàng)為禁止客戶端采用TCP/IP連接)
skip-networking
[mysqld]
[mysqld_safe]
####?客戶端啟動(dòng)配置
[client]
[mysql]
[mysqladmin]
###?所有配置組的格式同上
mysqladmin:是一個(gè)執(zhí)行管理操作的客戶端程序,它可以檢查服務(wù)器的配置和當(dāng)前服務(wù)的狀態(tài),創(chuàng)建和刪除數(shù)據(jù)庫等。
[root@test ~]# mysqladmin -uroot -p processlist
Enter password:
+----+------+-----------+------+---------+------+----------+------------------+
| Id | User | Host ? ? ?| db ? | Command | Time | State ? ?| Info ? ? ? ? ? ? |
+----+------+-----------+------+---------+------+----------+------------------+
| 33 | root | localhost | test | Sleep ? | 5 ? ?| ? ? ? ? ?| ? ? ? ? ? ? ? ? ?|
| 35 | root | localhost | ? ? ?| Query ? | 0 ? ?| starting | show processlist |
+----+------+-----------+------+---------+------+----------+------------------+
[root@test ~]# mysqladmin -uroot -p status
Enter password:
Uptime: 13335 ?Threads: 2 ?Questions: 66 ?Slow queries: 0 ?Opens: 121 ?Flush tables: 3 ?Open tables: 5 ?Queries per second avg: 0.004
### 打印系統(tǒng)變量
[root@test ~]# mysqladmin -uroot -p variable
服務(wù)端和客戶端不同命令啟動(dòng)會(huì)讀取不同的配置組;
如果多個(gè)配置組存在相同的配置如下所示
[mysqld]
port?=?3306
###.....省略其它配置
[server]
port=3333
[mysqld_safe]
port=5555
會(huì)根據(jù)書寫順序讀取,也就是說后面的配置會(huì)覆蓋前面的配置
- 如果服務(wù)端采用mysqld啟動(dòng)服務(wù)端那么port的最終結(jié)果為port=3333(只會(huì)讀取[mysqld]和[server]配置組)
- 如果服務(wù)端采用mysqld_safe啟動(dòng)服務(wù)端那么port的最終結(jié)果為port=5555(只會(huì)讀取[mysqld],[mysqld_safe]和[server]配置組)
My.cnf文件讀取優(yōu)先級(jí)
在啟動(dòng)Mysql服務(wù)時(shí)如果沒有指定配置文件的具體路徑,那么Mysql服務(wù)會(huì)到如下幾個(gè)目錄搜索,可以通過命令mysql --help
查看,部分說明如下
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
讀取文件的順序?yàn)?/p>
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/local/mysql/etc/my.cnf
- ~/.my.cnf(注意:這里的文件名為.my.cnf和其它路徑是有區(qū)別的,并且文件名前面有一個(gè)點(diǎn)那么Linux服務(wù)器會(huì)將這個(gè)文件隱藏,也就是使用ll命令查詢不到此文件,只有使用ll -a才能獲取,另外這個(gè)文件是在登錄用戶的家目錄?。?!)。
這四個(gè)文件會(huì)按照順序讀取,也就是說如果在/etc/my.cnf文件下配置了port=3006,在~/.my.cnf下面配置了port=3307那么最終讀取的結(jié)果是port為3307。
當(dāng)然這是Mysql讀取默認(rèn)配置的情況,我們可以自己指定配置文件路徑,如下所示
####?--defaults-file后面接任意路徑文件,非root用戶不需要--user=root
mysqld?--defaults-file=/usr/local/mysql/etc/my.cnf.copy?--user=root
推薦學(xué)習(xí):《MySQL視頻教程》
以上是mysql的運(yùn)行檔是什麼的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

1.PHP開發(fā)問答社區(qū)首選Laravel MySQL Vue/React組合,因生態(tài)成熟、開發(fā)效率高;2.高性能需依賴緩存(Redis)、數(shù)據(jù)庫優(yōu)化、CDN和異步隊(duì)列;3.安全性必須做好輸入過濾、CSRF防護(hù)、HTTPS、密碼加密及權(quán)限控制;4.變現(xiàn)可選廣告、會(huì)員訂閱、打賞、傭金、知識(shí)付費(fèi)等模式,核心是匹配社區(qū)調(diào)性和用戶需求。

PHP設(shè)置環(huán)境變量主要有三種方式:1.通過php.ini全局配置;2.通過Web服務(wù)器(如Apache的SetEnv或Nginx的fastcgi_param)傳遞;3.在PHP腳本中使用putenv()函數(shù)。其中,php.ini適用於全局且不常變的配置,Web服務(wù)器配置適用於需要隔離的場(chǎng)景,putenv()適用於臨時(shí)性的變量。持久化策略包括配置文件(如php.ini或Web服務(wù)器配置)、.env文件配合dotenv庫加載、CI/CD流程中動(dòng)態(tài)注入變量。安全管理敏感信息應(yīng)避免硬編碼,推薦使用.en

要實(shí)現(xiàn)MySQL部署自動(dòng)化,關(guān)鍵在於選用Terraform定義資源、Ansible管理配置、Git進(jìn)行版本控制,並強(qiáng)化安全與權(quán)限管理。 1.使用Terraform定義MySQL實(shí)例,如AWSRDS的版本、類型、訪問控制等資源屬性;2.通過AnsiblePlaybook實(shí)現(xiàn)數(shù)據(jù)庫用戶創(chuàng)建、權(quán)限設(shè)置等細(xì)節(jié)配置;3.所有配置文件納入Git管理,支持變更追蹤與協(xié)作開發(fā);4.避免硬編碼敏感信息,使用Vault或AnsibleVault管理密碼,並設(shè)置訪問控制與最小權(quán)限原則。

為什麼需要SSL/TLS加密MySQL連接?因?yàn)椴患用艿倪B接可能導(dǎo)致敏感數(shù)據(jù)被截取,啟用SSL/TLS可防止中間人攻擊並滿足合規(guī)要求;2.如何為MySQL配置SSL/TLS?需生成證書和私鑰,修改配置文件指定ssl-ca、ssl-cert和ssl-key路徑並重啟服務(wù);3.客戶端連接時(shí)如何強(qiáng)制使用SSL?通過創(chuàng)建用戶時(shí)指定REQUIRESSL或REQUIREX509實(shí)現(xiàn);4.SSL配置容易忽略的細(xì)節(jié)包括證書路徑權(quán)限、證書過期問題以及客戶端配置需求。

收集用戶行為數(shù)據(jù)需通過PHP記錄瀏覽、搜索、購買等信息至數(shù)據(jù)庫,並清洗分析以挖掘興趣偏好;2.推薦算法選擇應(yīng)根據(jù)數(shù)據(jù)特徵決定:基於內(nèi)容、協(xié)同過濾、規(guī)則或混合推薦;3.協(xié)同過濾在PHP中可實(shí)現(xiàn)為計(jì)算用戶餘弦相似度、選K近鄰、加權(quán)預(yù)測(cè)評(píng)分並推薦高分商品;4.性能評(píng)估用準(zhǔn)確率、召回率、F1值及CTR、轉(zhuǎn)化率並通過A/B測(cè)試驗(yàn)證效果;5.冷啟動(dòng)問題可通過商品屬性、用戶註冊(cè)信息、熱門推薦和專家評(píng)價(jià)緩解;6.性能優(yōu)化手段包括緩存推薦結(jié)果、異步處理、分佈式計(jì)算與SQL查詢優(yōu)化,從而提升推薦效率與用戶體驗(yàn)。

PHP在智能客服中扮演連接器和大腦中樞角色,負(fù)責(zé)串聯(lián)前端輸入、數(shù)據(jù)庫存儲(chǔ)與外部AI服務(wù);2.實(shí)現(xiàn)時(shí)需構(gòu)建多層架構(gòu):前端接收用戶消息,PHP後端預(yù)處理並路由請(qǐng)求,先匹配本地知識(shí)庫,未命中則調(diào)用外部AI服務(wù)如OpenAI或Dialogflow獲取智能回復(fù);3.會(huì)話管理由PHP寫入MySQL等數(shù)據(jù)庫,保障上下文連續(xù)性;4.集成AI服務(wù)需用Guzzle發(fā)送HTTP請(qǐng)求,安全存儲(chǔ)APIKey,做好錯(cuò)誤處理與響應(yīng)解析;5.數(shù)據(jù)庫設(shè)計(jì)需包含會(huì)話、消息、知識(shí)庫、用戶表,合理建索引、保障安全與性能,支撐機(jī)器人記憶

選擇合適的PHP框架需根據(jù)項(xiàng)目需求綜合考慮:Laravel適合快速開發(fā),提供EloquentORM和Blade模板引擎,便於數(shù)據(jù)庫操作和動(dòng)態(tài)表單渲染;Symfony更靈活,適合複雜系統(tǒng);CodeIgniter輕量,適用於對(duì)性能要求較高的簡(jiǎn)單應(yīng)用。 2.確保AI模型準(zhǔn)確性需從高質(zhì)量數(shù)據(jù)訓(xùn)練、合理選擇評(píng)估指標(biāo)(如準(zhǔn)確率、召回率、F1值)、定期性能評(píng)估與模型調(diào)優(yōu)入手,並通過單元測(cè)試和集成測(cè)試保障代碼質(zhì)量,同時(shí)持續(xù)監(jiān)控輸入數(shù)據(jù)以防止數(shù)據(jù)漂移。 3.保護(hù)用戶隱私需採取多項(xiàng)措施:對(duì)敏感數(shù)據(jù)進(jìn)行加密存儲(chǔ)(如AES

要讓PHP容器支持自動(dòng)構(gòu)建,核心在於配置持續(xù)集成(CI)流程。 1.使用Dockerfile定義PHP環(huán)境,包括基礎(chǔ)鏡像、擴(kuò)展安裝、依賴管理和權(quán)限設(shè)置;2.配置GitLabCI等CI/CD工具,通過.gitlab-ci.yml文件定義build、test和deploy階段,實(shí)現(xiàn)自動(dòng)構(gòu)建、測(cè)試和部署;3.集成PHPUnit等測(cè)試框架,確保代碼變更後自動(dòng)運(yùn)行測(cè)試;4.使用Kubernetes等自動(dòng)化部署策略,通過deployment.yaml文件定義部署配置;5.優(yōu)化Dockerfile,採用多階段構(gòu)
