6700萬年前「神奇雞」化石出土 可能是雞、鴨的共同祖先

摘錄自2020年3月19日自由時報報導

英國劍橋大學古生物學家近日發表論文,揭露研究團隊在歐洲發現目前世界上最古老的現代鳥類化石,可追溯至6700萬年前,可能是地球上每隻雞、鴨等家禽的祖先。

綜合外媒報導,該鳥類化石保存良好,是從荷蘭及比利時邊境的一處採石場被發現,被專家正式稱為「Asteriornis maastrichtensis」,暱稱則是「Wonderchicken」,意為「神奇雞」,體型僅半隻綠頭鴨大,約400克重,過去可能生活在海岸線上。

專家依據骨頭特徵判斷,神奇雞化石非常接近現代雞或鴨子群體的共同祖先。此外,由於化石可追溯至6700萬年前,代表這種獨特的物種是生活在「白堊紀滅絕」(恐龍大滅絕)發生之前。

【其他文章推薦】

※客製專屬滑鼠墊、可愛造型L夾L型資料夾、透明證件套、手提袋,專業印刷設計廠商!  

示波器鮮為人知的使用技巧?

※掌握產品行銷策略,帶你認識商品包裝設計基本要素

※買不起高檔茶葉,精緻包裝茶葉罐,也能撐場面!

貨梯使用安全與保養

※高效率洗滌塔活性碳設備有哪些?

※專業模具開發-五金製品代工製作廠

中油觀塘工業港工程 疑工作船斷纜傷藻礁

摘錄自2020年4月7日公視報導

觀塘工業港工程正在進行,不過在地團體與學者懷疑因為風浪過大,工作船斷纜並擱淺,導致當地藻礁表面遭到刮除,學者認為這可能造成永久性傷害,但中油強調並無摩擦礁體一事。

觀塘工業港的預定地原本在進行棧橋工程,但國際海洋學者陳昭倫接獲通報說工作船擱淺,他到了現場發現,原本應該有紅色表面的藻礁,卻出現表面被刮除、礁體裸露,懷疑是遭到工作船破壞,陳昭倫說:「把這個表面的珊瑚藻刮除以後,它要再形成礁體的速度是根本就來不及牠破壞的速度,它一旦被破壞了以後,它表面結構受到損傷了以後,珊瑚再長回去的機會是非常非常的少。」

對此,負責施工的中油液化天然氣工程處表示,確實有一艘工作船因為海象太差,導致四條纜繩斷掉三條,但強調並非擱淺,也試圖在漲潮時將工作船拉到海灘上,強調並無硬拖、摩擦礁體之事發生,但一切仍有待退潮後進一步檢視。

【其他文章推薦】

石墨與鑽石區別在哪?

※專業客製化禮物、贈品設計,辦公用品常見【L夾】搖身一變大受好評!!

※高價位跟低價位的示波器又有何差異?

無塵擦拭布各大品牌廠商販售比價網!

※想知道CNC 自動車床與CNC車床有何區別??

特殊螺絲工廠批發-精密零件專售

※餐飲器具首選, 多種功能側火烤爐設備,小本經營最佳生財器具

據《BBC》報導,亞拉岡農業局長奧洛納(Joaquin Olona)表示

據《BBC》報導,亞拉岡農業局長奧洛納(Joaquin Olona)表示,目前尚不清楚武漢肺炎是否可以從動物傳給人類,反之亦然,農場的疫情有可能是工人感染了水貂,但也有可能是水貂傳給工人。奧洛納說,政府之所以會撲殺貂隻,是為了避免人與人之間的傳染出現,當局將向農場提供經濟補償。

過去的研究顯示,新型冠狀病毒在某些動物例如貓和狗之間具有傳染性,但到目前為止對於其是否能由動物傳染人類仍不清楚。先前在丹麥和荷蘭的水貂農場,也發生工人確診武漢肺炎的事件,荷蘭已撲殺了成千上萬隻的水貂。

【其他文章推薦】

空壓機這裡買最划算!

新北市轉軸代工廠商詢價平台?

※高效率洗滌塔活性碳設備有哪些?

新北市探針業者,哪家可以精準車製?

※必買推薦!上下火烤爐全台最便宜都在這!

臭氧機的滅菌效果如何?

CCD外觀檢查包裝機

根據美國《ABC新聞》報導,聯合國世界氣象組織指出

根據美國《ABC新聞》報導,聯合國世界氣象組織指出,目前出現在南極上空的破洞是近幾年來「最大」和「最深」的,強烈的極地渦流是此次臭氧層的導火線,負78度的極度低溫條件下形成「極地平流層雲」,雲中含有冰晶,經太陽光照射後就會產生化學反應,開始大量消耗臭氧。

美國太空總署表示,異常的南極天氣是造成這種情況的原因;歐洲中期天氣預報中心哥白尼大氣監測局局長佩奇(Vincent-Henri Peuch)認為,每年發生的南極臭氧層破洞事件都有很大的差異,這也表明人們需要持續減少排放有害物質,繼續執行《蒙特婁議定書》的規範事項。

【其他文章推薦】

自動旋轉烤玉米機比價站,幫你找好康~

※業界餐飲設備NO1.嘉冠烤爐

※高價位跟低價位的示波器又有何差異?

臭氧機的滅菌效果如何?

※專業客製化禮物、贈品設計,辦公用品常見【L夾】搖身一變大受好評!!

※多功能滑鼠墊、多用途卡套、全客製贈品節慶促銷活動開跑中  

傳切魚砧板驗出病毒 北京聞鮭色變全下架

摘錄自2020年6月14日中央社報導

中國官方14號再公布,13日中國共新增57例新冠肺炎確診,其中本土病例38例,包括北京36例,遼寧2例。遼寧2例也與北京確診者相關。

北京2019冠狀病毒疾病疫情所在地新發地批發市場傳出切割鮭魚的砧板驗出病毒,一時各界聞鮭魚色變,北京主要賣場超市連夜下架鮭魚,餐廳與日本料理停售鮭魚,大量顧客取消訂位。

北京超市發相關負責人表示,門市銷售的鮭魚都是從國外進口。不過,官方至今仍未公開病毒源頭,也並未證實病毒來自於鮭魚肉。中國疾病預防控制中心流行病學首席專家吳尊友專訪,表示病毒源頭「目前還處在搜集信息的過程中」。

【其他文章推薦】

※各種攤販小吃設備,沙威瑪機應有盡有!

※家庭、朋友聚會,享受輕鬆烤肉必備外燴烤爐NO.1

※十大封口機人氣排行榜-烘焙必備幫手!

臭氧機推薦

※專業客製化禮物、贈品設計,辦公用品常見【L夾】搖身一變大受好評!!

亞馬遜雨林火災數量創13年新高 武肺竟是關鍵

摘錄自2020年7月2日自由時報報導

綜合外電報導,巴西國家太空署(INPE)今年6月的亞馬遜雨林衛星照片,紀錄到2248起火災,5月至6月則累積3077起,較2019年同期多了12.5%,亞馬遜雨林火災的高峰通常是7月至9月,今年尚未進入高峰期,火災數量便已大幅增加。

CNN指出,火災數量上升可能是因為總統波索納洛(Jair Bolsonaro)的政策,但環保活動人士認為,巴西嚴峻的武漢肺炎疫情也加劇了亞馬遜火災問題,政府受疫情影響,對非法縱火的監管力道減弱,讓非法伐木者與牧場主人變本加厲地縱火,燒毀大面積林地。

非政府組織「世界自然基金會」(World Wildlife Fund)巴西執行主任佛沃迪克(Mauricio Voivodic)表示,他們不能容許2019年的狀況重演。

【其他文章推薦】

貨梯使用安全與保養

臭氧機推薦

※高效率洗滌塔活性碳設備有哪些?

無塵擦拭布各大品牌廠商販售比價網!

※掌握產品行銷策略,帶你認識商品包裝設計基本要素

西班牙農場大量水貂確診 官方撲殺近10萬隻

摘錄自2020年7月17日自由時報報導

西班牙亞拉岡一處農場有八名武漢肺炎(COVID-19)確診者,當局雖在疫情出現後隔離農場的9萬2700隻水貂,但最近驗出其中87%貂隻都感染了病毒,因此決定下令撲殺。

據《BBC》報導,亞拉岡農業局長奧洛納(Joaquin Olona)表示,目前尚不清楚武漢肺炎是否可以從動物傳給人類,反之亦然,農場的疫情有可能是工人感染了水貂,但也有可能是水貂傳給工人。奧洛納說,政府之所以會撲殺貂隻,是為了避免人與人之間的傳染出現,當局將向農場提供經濟補償。

過去的研究顯示,新型冠狀病毒在某些動物例如貓和狗之間具有傳染性,但到目前為止對於其是否能由動物傳染人類仍不清楚。先前在丹麥和荷蘭的水貂農場,也發生工人確診武漢肺炎的事件,荷蘭已撲殺了成千上萬隻的水貂。

【其他文章推薦】

無塵擦拭布各大品牌廠商販售比價網!

臭氧機推薦

貨梯使用安全與保養

※高效率洗滌塔活性碳設備有哪些?

※掌握產品行銷策略,帶你認識商品包裝設計基本要素

印尼帝汶島海灘驚現大鯨魚屍體

摘錄自2020年7月24日法廣印尼報導

印度尼西亞南部帝汶島沙灘附近,發現了一具上百噸重大鯨魚的屍體。當局目前還沒搞懂這頭大型哺乳動物的死因。

當地漁民是在20日早上發現這具長達29米的大鯨魚。海事當局認為這頭海洋生物已有70歲,無生命的漂移,可能已長達數年之久。死因則尚無定論。其屍體上沒有發現任何傷痕,但當地媒體提到了上一個的案例。

2018年,另一頭鯨魚曾擱淺在附近的另個小島Kapota。那頭鯨魚的胃裡發現了眾多塑膠垃圾:115個塑膠杯,還有4個塑膠瓶。這一發現讓人感到震驚,儘管這最終並沒有被確定是造成大鯨魚死亡的原因,但已足以引起科學界的重視。

【其他文章推薦】

空壓機這裡買最划算!

貨梯使用安全與保養

臭氧機推薦

※高效率洗滌塔活性碳設備有哪些?

調優 | Apache Hudi應用調優指南

通過Spark作業將數據寫入Hudi時,Spark應用的調優技巧也適用於此。如果要提高性能或可靠性,請牢記以下幾點。

輸入并行性:Hudi對輸入進行分區默認併發度為1500,以確保每個Spark分區都在2GB的限制內(在Spark2.4.0版本之後去除了該限制),如果有更大的輸入,則相應地進行調整。我們建議設置shuffle的併發度,配置項為hoodie.[insert|upsert|bulkinsert].shuffle.parallelism,以使其至少達到input_data_size/500MB。

Off-heap(堆外)內存:Hudi寫入parquet文件,需要使用一定的堆外內存,如果遇到此類故障,請考慮設置類似spark.yarn.executor.memoryOverheadspark.yarn.driver.memoryOverhead的值。

Spark 內存:通常Hudi需要能夠將單個文件讀入內存以執行合併或壓縮操作,因此執行程序的內存應足以容納此文件。另外,Hudi會緩存輸入數據以便能夠智能地放置數據,因此預留一些spark.memory.storageFraction通常有助於提高性能。

調整文件大小:設置limitFileSize以平衡接收/寫入延遲與文件數量,並平衡與文件數據相關的元數據開銷。

時間序列/日誌數據:對於單條記錄較大的數據庫/ nosql變更日誌,可調整默認配置。另一類非常流行的數據是時間序列/事件/日誌數據,它往往更加龐大,每個分區的記錄更多。在這種情況下,請考慮通過.bloomFilterFPP()/bloomFilterNumEntries()來調整Bloom過濾器的精度,以加速目標索引查找時間,另外可考慮一個以事件時間為前綴的鍵,這將使用範圍修剪並顯着加快索引查找的速度。

GC調優:請確保遵循Spark調優指南中的垃圾收集調優技巧,以避免OutOfMemory錯誤。[必須]使用G1 / CMS收集器,其中添加到spark.executor.extraJavaOptions的示例如下:

-XX:NewSize=1g -XX:SurvivorRatio=2 -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintTenuringDistribution -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/hoodie-heapdump.hprof

OutOfMemory錯誤:如果出現OOM錯誤,則可嘗試通過如下配置處理:spark.memory.fraction = 0.2,spark.memory.storageFraction = 0.2允許其溢出而不是OOM(速度變慢與間歇性崩潰相比)。

以下是完整的生產配置

spark.driver.extraClassPath /etc/hive/conf
spark.driver.extraJavaOptions -XX:+PrintTenuringDistribution -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/hoodie-heapdump.hprof
spark.driver.maxResultSize 2g
spark.driver.memory 4g
spark.executor.cores 1
spark.executor.extraJavaOptions -XX:+PrintFlagsFinal -XX:+PrintReferenceGC -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintAdaptiveSizePolicy -XX:+UnlockDiagnosticVMOptions -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/hoodie-heapdump.hprof
spark.executor.id driver
spark.executor.instances 300
spark.executor.memory 6g
spark.rdd.compress true
 
spark.kryoserializer.buffer.max 512m
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.shuffle.service.enabled true
spark.sql.hive.convertMetastoreParquet false
spark.submit.deployMode cluster
spark.task.cpus 1
spark.task.maxFailures 4
 
spark.yarn.driver.memoryOverhead 1024
spark.yarn.executor.memoryOverhead 3072
spark.yarn.max.executor.failures 100

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※回頭車貨運收費標準

CentOS8.1中使用通用二進制包安裝MySQL8.0

  寫在前的的話: 在IT技術日新月異的今天,老司機也可能在看似熟悉的道路上翻車,甚至是大型翻車現場!自己一個人開車過去翻個車不可怕,可怕的是帶着整個團隊甚至是整個公司一起翻車山崖下,解決辦法就是:新出現的道路自己先過一遍,留好坑位標記,將來帶隊過去時不再翻車!!!

 

  最近剛好在進行權限系統的微服務化改造,要重新搭一套開發服務器環境。今天搭的是MySQL數據庫服務器,MySQL 8.0出來也有些年月了,現在(2020)大多數公司還沒在生產上用上,於是乎就想嘗個鮮,選擇了在CentOS8.1上進行MySQL8.0服務器的搭建。當前來說CentOS8.1也算比較新了!

 

  老樣子,先裝一個全新的CentOS8.1虛擬機,選擇裝配基本的Server軟件包,網絡模式選擇【橋接模式(自動)】(主要為了讓宿主機和虛擬機的網絡處於等級),IP地址相關信息切記選擇手工配置,不能用DHCP進行動態分配(有DNS服務器輔助除外),為什麼呢?因為你是在配服務器,IP地址要固定下來,不然每次啟動后的IP都不同,那就很尷尬了!

 

  服務器操作系統準備好后該去下載MySQL8.0了,去哪裡下呢?當然是MySQL8.0社區版官網!可是跑到網官一看,估計有些同學就一臉懵逼,純英文的不說,安裝包還各樣種樣的!怎麼選呢?

  首先要選定操作系統平台,我這邊是CentOS8.1 x86_64位架構,那我要選Linux版本的,最好是CentOS專用的!結果找了一圈暫時還沒有CentOS專用的版本(RedHat專用版本到是有,其實我們知道CentOS是就源自RedHat)…為了保險起見,我們選Linux通用版(Linux-Generic),結果出來的列表也不少!這麼多都是些啥,見圖標解吧:

 

  我選擇【64位通用二進制最小安裝壓縮包(不含調試組件及調式符號)】,理由:

  1. 我的目標操作系統是64位的CentOS;
  2. 我不需要做MySQL的調試;
  3. CentOS8.1上帶有專用的解壓安裝工具tar;
  4. 小包從官網下載和上傳到服務器都快(MySQL數據庫功能也完整,別看小了那麼多!);

  點擊Download后出現的界面中會建議你登錄你的Oracle Web賬號,不用登錄(當然你有賬號也可以登錄),直接點下面的一小行字——“No thanks,just start my download.

 

  將目標包(mysql-8.0.20-linux-x86_64-minimal.tar.xz)下載好后,使用SecureCRT上傳到服務器 /opt 目錄下!(Linux眾多目錄的作用)

  接下來開始正式安裝MySQL8.0,記住我們的前提是:全新的、乾淨的CentOS8.1操作系統,之前沒有裝過MySQL的!如果之前裝過MySQL是要先把相關目錄和配置文件刪除乾淨才能再裝的!謹記!謹記!謹記!

  第一步:使用yum包管理器檢查並安裝異步IO依賴包 libaio ,如果沒裝這個包,數據目錄初始化和後續服務器的啟動都將失敗,如果檢查發現沒裝,要將它裝上:

# yum search libaio 
# yum -y install libaio 

  第二步:由於CentOS是源自RedHat的,而RedHat系列的操作系統中沒有MySQL通用二進制安裝包(不管有沒有壓縮)中的MySQL客戶端(bin/mysql)組件所需要的 /lib64/libtinfo.so.5 文件,為了解決這個問題,需要安裝一個含有該文件的 ncurses-compat-libs 包(截圖是已經裝過一次的結果):

# yum -y install ncurses-compat-libs

  第三步:轉到 mysql-8.0.20-linux-x86_64-minimal.tar.xz 壓縮包存放目錄 /opt ,使用 tar 命令進行解壓(直接解壓到當前目錄):

# cd /opt
# tar -xvf mysql-8.0.20-linux-x86_64-minimal.tar.xz

  解壓得到一個新目錄:/opt/mysql-8.0.20-linux-x86_64-minimal ,該目錄即為MySQL的真實安裝目錄

  第四步:創建用於運行MySQL的組和普通用戶(非操作系統用戶):

# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql

  第五步:在用戶手動安裝軟件推薦安裝目錄 /usr/local 中創建MySQL的真實安裝目錄的軟鏈接目錄(軟鏈接目錄不能是已經存在的目錄,相當於Windows快捷方式):

# cd /usr/local
# ln -s /opt/mysql-8.0.20-linux-x86_64-minimal mysql

  第六步:在mysql軟鏈接目錄中創建導入導出操作安全目錄(該目錄用於使具有FILE權限的用戶可以安全地執行導入導出操作):

# cd /usr/local/mysql
# mkdir mysql-files
# chown mysql:mysql mysql-files
# chmod 750 mysql-files

  (其實,第六步做完后就已經有辦法可以臨時點亮MySQL服務器了,這裏不講,因為我們要配的是一個長期運行的MySQL數據庫服務器)

  第七步:在mysql軟鏈接目錄下創建數據目錄:

# cd /usr/local/mysql
# mkdir data
# chown mysql:mysql data
# chmod 750 data

  第八步:創建MySQL服務啟動需要用到的靜態配置文件(如果目錄下已經有了同名文件,則需要換一個名字,之前沒裝過MySQL一般是不會有的!):

# cd /etc
# touch my.cnf
# chown root:root my.cnf
# chmod 644 my.cnf

  第九步:使用vi或vim打開第八步創建的配置文件 /etc/my.cnf ,加入MySQL服務的配置信息

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/mysqldb.xgclassroom.err
user=mysql
secure_file_priv=/usr/local/mysql/mysql-files
local_infile=OFF

  注意:配置中log-error的值一般中根據你安裝操作系統時設置的Host名稱相關,大家的不一樣,當然你也可以直接指定新名字!

  另外,如果要InnoDB的相關配置項,那麼只能在數據目錄初始化(第十步)之前在my.cnf中進行配置,主要有 innodb_data_home_dir,innodb_data_file_path,,innodb_log_file_size,innodb_log_group_home_dir 和 innodb_page_size 這幾項,未配置的情況下,它們都使用默認值。

  第十步:初始化第七步創建的數據目錄(因為要用到第八和第九步創建的配置文件)

# cd /usr/local/mysql
# bin/mysqld --defaults-file=/etc/my.cnf --initialize

  注意:數據目錄初始化成功后,會在第九步所設置的log-error日誌文件(我的是 /usr/local/mysql/data/mysqldb.xgclassroom.err)中生成 root@localhost 的初始密碼(賬號冒號後面的QdbB=9e!lT6=就是,要記住這個初始密碼,後面登錄root賬號是要它來修改初始密碼),類似下面的信息(可以使用cat命令查看):

...省略...
A temporary password is generated for root@localhost: yi5w%J*hws6E
...省略...

  現在我們還缺了最最最重要的一項配置——讓MySQL服務隨操作系統的啟動自動啟動!繼續配置ing!

  在Linux系統中目前系統服務主要以 systemd 服務單元的形式存在(類似windows平台的services.msc下管理的各個服務),Linux系統下一切皆文件,systemd 服務單元也是由一個個systemd 服務單元配置文件組成,systemd 服務單元配置文件 = systemd 服務單元!配置文件名就是服務單元名!所有服務單元的配置文件統一放在 /usr/lib/systemd/system 目錄下。

  第十一步:在系統服務單元配置文件存放目下創建MySQL的服務單元配置文件:

# cd /usr/lib/systemd/system
# touch mysqld.service
# chmod 644 mysqld.service

  第十二步:使用vi或vim打開第十一步創建的MySQL服務單元配置文件 /usr/lib/systemd/system/mysqld.service,並加入MySQL服務單元配置信息:

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

# Have mysqld write its state to the systemd notify socket
Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Start main service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS 

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

  第十三步:啟用MySQL服務單元配置

# systemctl enable mysqld.service

  經過上面的一系列安裝和配置步驟后,此時我們已經可以通過systemctl工具手工管理MySQL服務了:

# systemctl {start|stop|restart|status} mysqld

  第十四步:啟動MySQL服務,並查看MySQL服務狀態:

# systemctl start mysqld
# systemctl status mysqld

  第十五步:重啟服務器,檢驗MySQL服務是否隨服務器一起啟動了:

# reboot

  …重啟系統中…

# systemctl status mysqld

  如果最終MySQL服務狀態正常,那麼CentOS8.1上MySQL8.0的安裝就算是完成了,但是不要高興的太早了!還有好多事要做:

  1、將服務器上的MySQL客戶端(bin/mysql)配置到系統環境變量PATH中:

  如果不將MySQL客戶端(bin/mysql)配到環境變量中,你會發現即使MySQL服務在正常運行,但直接在系統終端輸入mysql是找不到該命令的:

[root@mysqldb /]# mysql
-bash: mysql: command not found

  當然,你用完整MySQL客戶端(bin/mysql)命令路徑是可以運行該命令的(雖然報錯,但那表示命令可以使用了):

[root@mysqldb /]# /usr/local/mysql/bin/mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

  系統環境變量PATH在環境變量配置文件 /etc/profile 中配置:

# vim /etc/profile

在文件的最後新起一行,插入:

export PATH=$PATH:/usr/local/mysql/bin

保存退出后,使用下面的命令手動使修改生效:

# source /etc/profile

  現在你可以直接在任意目錄下執行mysql命令了:

[root@mysqldb /]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

  

  2、root賬號初始密碼修改:

  使用root初始密碼(記錄在第九步所設置的log-error日誌文件)登錄MySQL,並修改密碼:

[root@mysqldb /]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.20

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>alter user 'root'@'localhost' identified by '1qaz@WSX';

 Query OK, 0 rows affected (0.00 sec)

 

  3、進行root賬號的服務器本機登錄測試:

  修改完root的默認密碼后,退出MySQL並使用新密碼重新嘗試登錄:

mysql> exit
Bye
[root@mysqldb /]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

 

  4、對MySQL使用的端口號進行防火牆例外設置:

  先用root賬號登錄MySQL,檢查一下當前正在使用的端口號:

mysql> show global variables like 'port';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| port          | 3306  |
+---------------+-------+
1 row in set (0.01 sec)

  將目標端口號(例中為3306)添加到防火牆例外列表,並重新載入防火牆

# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
# firewall-cmd --reload
success

  注意1:一定要帶上–permanent 參數才能永遠生效,否則系統重啟后丟失,另外 –zone 、–add-port 和 –permanent參數前面是兩個-;

  注意2:一定要重新載入防火牆,讓設置生效;

 

  5、創建遠程登錄和使用MySQL的普通用戶(因為安全起見,root賬號一般不要設置成可以遠程登錄,要設置也盡量設置成只可在固定的某個IP遠程登錄):

  以root賬號登錄MySQL,使用以下SQL命令創建一個可以任意網絡互通的點登錄的賬號xurm 密碼 1qaz@WSX

create user xurm IDENTIFIED with mysql_native_password by '1qaz@WSX' account unlock;
select host,user from user;
grant all on *.* to xurm WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

  認認真真上邊的步驟和細節進行安裝和配置后,現在可以從開發機的客戶端,用普通賬號登錄遠程MySQL服務器就可以愉快的玩耍了:

 

  以下記錄一次手賤導致的翻車現場:

  使用 # systemctl stop mysqld.service 成功關閉mysql服務后,嘗試直接使用 /usr/local/mysql/bin/mysqld 嘗試啟動mysql造成的後果:bin/mysqld 嘗試啟動時覆蓋並破壞了第十步數據目錄初始生成的有關文件,導至MySQL無法啟動,這時嘗試使用 # systemctl start mysqld.service也無法再啟動MySQL服務~~~

....
2020-06-06T04:38:39.614356Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
2020-06-06T04:38:40.618323Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
2020-06-06T04:38:41.619650Z 1 [ERROR] [MY-012574] [InnoDB] Unable to lock ./ibdata1 error: 11
2020-06-06T04:38:41.620710Z 1 [ERROR] [MY-012592] [InnoDB] Operating system error number 11 in a file operation.
2020-06-06T04:38:41.621045Z 1 [ERROR] [MY-012596] [InnoDB] Error number 11 means 'Resource temporarily unavailable'
2020-06-06T04:38:41.621712Z 1 [ERROR] [MY-012215] [InnoDB] Cannot open datafile './ibdata1'
2020-06-06T04:38:41.622047Z 1 [ERROR] [MY-012959] [InnoDB] Could not open or create the system tablespace. 
If you tried to add new data files to the system tablespace, and it failed here, you should now edit innodb_data_file_path in my.cnf back to
what it was, and remove the new ibdata files InnoDB created in this failed attempt. InnoDB only wrote those files full of zeros, but did not
yet use them in any way. But be careful: do not remove old data files which contain your precious data!
2020-06-06T04:38:41.622372Z 1 [ERROR] [MY-012930] [InnoDB] Plugin initialization aborted with error Cannot open a file. 2020-06-06T04:38:42.119489Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine 2020-06-06T04:38:42.122437Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed. 2020-06-06T04:38:42.127147Z 0 [ERROR] [MY-010119] [Server] Aborting 2020-06-06T04:38:42.127857Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.20) MySQL Community Server - GPL.

  提示信息中讓我在/etc/my.cnf配置文件中將 innodb_data_file_path 配置項的值改回原來的去,實際上我並沒有在/etc/my.cnf配置文件配置該項,而是一直使用着默認的 innodb_data_file_path 配置;

  提示信息讓我刪除啟動失敗的嘗試中InnoDB生成的新ibdata相關文件,講真的,因為一開始沒有對比過data/目錄中的文件,現在我都不知道哪些是InnoDB生成的新ibdata相關文件;

  最後想了一下,我是剛剛安裝的數據庫系統,也還沒有重要數據在上邊,現在data/目錄遭到破壞,那最快的辦法就是清空data/目錄,並重新初始化它,應該就能解決問題了(已經運行了段時間的生產數據庫千萬不要這麼玩,要備份好所有數據文件,否則會死得很難看!!!最好另尋它法,最最最好就不要讓這樣的車禍出現!):

  • 清空data/目錄:
#  rm -rf /usr/local/mysql/data/*

 

  • 使用第十步中的命令重新初始化數據目錄:
# cd /usr/local/mysql
# bin/mysqld --defaults-file=/etc/my.cnf --initialize

注意:數據目錄重新初始化成功后,會在第九步所設置的log-error日誌文件(我的是 /usr/local/mysql/data/mysqldb.xgclassroom.err)中生成新的 root@localhost 的初始密碼

 

  • 重啟嘗試啟動MySQL服務:
# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code.
See "systemctl status mysqld.service" and "journalctl -xe" for details.

  哦呵…又雙叒叕翻車了,重啟失敗!!! 慌得一逼!繼續…

 

  • 查看一下日誌文件/usr/local/mysql/data/mysqldb.xgclassroom.err
# cat mysqldb.xgclassroom.err 
2020-06-06T05:31:31.249888Z 0 [System] [MY-013169] [Server] /opt/mysql-8.0.20-linux-x86_64-minimal/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 2662
2020-06-06T05:31:31.256260Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-06-06T05:31:31.509465Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-06-06T05:31:31.995068Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: iqaaJCdnj3&e
2020-06-06T05:33:09.978908Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.20) starting as process 2714
2020-06-06T05:33:09.987836Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2020-06-06T05:33:10.212686Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2020-06-06T05:33:11.314035Z 0 [ERROR] [MY-011292] [Server] Plugin mysqlx reported: 'Preparation of I/O interfaces failed, X Protocol won't be accessible'
2020-06-06T05:33:11.314175Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of bind-address: '*' port: 33060 failed, `bind()` 
failed with error: Address already in use (98). Do you already have another mysqld server running with Mysqlx ?' 2020-06-06T05:33:11.314342Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of socket: '/tmp/mysqlx.sock' failed,
another process with PID 1734 is using UNIX socket file' 2020-06-06T05:33:11.413373Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. 2020-06-06T05:33:11.414505Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Address already in use 2020-06-06T05:33:11.414625Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ? 2020-06-06T05:33:11.414918Z 0 [ERROR] [MY-010119] [Server] Aborting 2020-06-06T05:33:12.939872Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.20) MySQL Community Server - GPL.

  有個PID為1734的進程在佔用3306和33060端口?而且還可能是另一個mysqld server,我造,不會是真的吧!使用# systemctl status mysqld 都查過了,沒有服務了~

 

  • 查看一下3306端口的佔用情況先:
# netstat -anp | grep 3306
tcp6       0      0 :::33060                :::*                    LISTEN      1734/mysqld         
tcp6       0      0 :::3306                 :::*                    LISTEN      1734/mysqld 

  竟然真的有個mysqld進程(PID=1734)以tpc6的協議模式佔著3306和33060端口~

 

  • 查看一下這個mysqld進程的詳情,看看它是是哪裡來的:
# ps -aux | grep mysqld
mysql      1734  0.5 19.0 1773244 352616 ?      Sl   12:12   0:29 /usr/local/mysql/bin/mysqld
root       2786  0.0  0.0  12108  1080 pts/1    S+   13:45   0:00 grep --color=auto mysqld

  果然是手賤作的孽,直接通過/usr/local/mysql/bin/mysqld手動啟動的服務沒關徹底…

 

  • 幹掉佔用3306和33060端口的無效mysqld進程:
# kill -9 1734

 

  • 再次使用# systemctl start mysqld 命令啟動mysql:
# systemctl start mysqld
# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-06-06 13:47:15 CST; 20s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 2795 (mysqld)
   Status: "Server is operational"
    Tasks: 39 (limit: 11337)
   Memory: 327.7M
   CGroup: /system.slice/mysqld.service
           └─2795 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

Jun 06 13:47:14 mysqldb.xgclassroom systemd[1]: Starting MySQL Server...
Jun 06 13:47:15 mysqldb.xgclassroom systemd[1]: Started MySQL Server.

 

  終於把車開回正路來了!!!使用日誌文件/usr/local/mysql/data/mysqldb.xgclassroom.err中記錄的新的初始密碼登錄mysql並修改初始化密碼就可以了!

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!

台中搬家遵守搬運三大原則,讓您的家具不再被破壞!