Linux安裝MySQL解決的一些問題
秉承菜鳥原則,閱讀菜鳥文檔,菜鳥文檔地址如下;在學習過程中遇到一些無記錄的錯誤;
MySQL 安裝 | 菜鳥教程
版本】
CentOs】
1,這一步時,先點擊該鏈接查看.rpm版本是否存在,記錄版本名稱再使用wget進行下載;
2,使用wget命令時,如果失敗,可能是未安裝wget, 【yum -y install wget 下載wget】;
1,注意Linux和MySQL的版本,某些版本的MySQL服務data目錄已存在數據,所以創建失敗
vi /etc/my.cnf , 查看data目錄是否存在文件內容信息;得到【datadir】路徑信息;
vim /etc/my.cnf[root@localhost mysql]# vi /etc/my.cnf# For advice on how to change settings please see# 5.1.2 Server Configuration Defaults[mysqld]## Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M## Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin## Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2M## Remove leading # to revert to previous value for default_authentication_plugin,# this will increase compatibility with older clients. For background, see:# https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_authentication_plugin# default-authentication-plugin=mysql_native_passworddatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.socklog-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid "/etc/my.cnf" 30L, 1188C
2,
cd /var/lib/mysql ,進入該目錄;查看文件信息;(可直接跳過);
rm -rf xx;清空目錄下所有信息;
mysqld initialize,初始化mysql 成功;
ERROR 2002 (HY000): Can』t connect to local MySQL server through socket 『/var/lib/mysql/mysql.sock』 (2)
1,查找/var/lib/mysql是否存在mysql.lock文件,cd /var/lib/mysql && ls -l 無文件
2,解決方法【登錄mysql出現/var/lib/mysql/mysql.sock不存在 - okstill - 博客園】
4.1 service mysqld stop (停止服務)
4.2 rm -fr /var/lib/mysql/* (刪除/var/lib/mysql下的所有文件)
4.4 killall mysqld (殺死所有mysqld進程)
4.5 service mysql start (啟動mysql服務。)
補充進程命令替換4.4【ps aux | grep mysql 】,強行終止當前用戶使用得進程[kill -9 xx]
再次MySQL,提示密碼錯誤,有兩種方法,下面是最直接得一種;
編輯/etc/my.cnf 末尾加上skip-grant-tables【免密登陸】
出現mysql>說明成功進入MySQL;
剛才通過設置/etc/my.cnf文件來免密登陸,在生產環境是不行得,所以要配置用戶密碼;
(mysql密碼要求【不低於8位,必須有數字,(大小)字母,特殊字元,】)
第二種方法,【grep temporary password /var/log/mysqld.log】
[root@localhost mysql]# grep temporary password /var/log/mysqld.log2018-07-06T09:21:46.580093Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ,-fY)u_&j0yC
密碼就是host:後面部分(動態密碼保存在lysqld日誌內部,用此密碼可不配置免密登陸);
1,登陸後,查看資料庫【SHOW DATABASE;】
提示修改臨時密碼,否則不能查看成功;下方是網站例子,輸入後提示命令與版本發生錯誤;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near mysqladmin -u root password "25752575&Yzp" at line 1
2,使用命令【ALTER user root@localhost IDENTIFIED BY 25752575&Yzp;】
更新後的密碼登陸成功,sql命令正常使用無錯誤信息;
推薦閱讀:
※MySQL 5.5 多實例 主從複製非同步、半同步實踐(1)
※第三代DRDS分散式SQL引擎全新發布
※深入理解二階段提交協議(DDB對XA懸掛事務的處理分析)(一)
※Python對資料庫進行簡單操作
※你的事務到底提交成功沒有?