1. 程式人生 > 實用技巧 >ubuntu 下安裝mysql 遇到的問題 centos 下安裝 mysql 《轉載》

ubuntu 下安裝mysql 遇到的問題 centos 下安裝 mysql 《轉載》

Ubuntu18.04下安裝MySQL
提示:以下操作均在root許可權下進行。

檢視有沒有安裝MySQL:

dpkg -l | grep mysql

安裝MySQL:

apt install mysql-server

安裝完成之後可以使用如下命令來檢查是否安裝成功:

netstat -tap | grep mysql

通過上述命令檢查之後,如果看到有 mysql 的socket處於 LISTEN 狀態則表示安裝成功。

登入mysql資料庫可以通過如下命令:

mysql -u root -p

-u 表示選擇登陸的使用者名稱, -p 表示登陸的使用者密碼,現在是mysql資料庫是沒有密碼的,Enter password:處直接回車,就能夠進入mysql資料庫。

然後通過 show databases; 就可以檢視當前的所有資料庫。

接下來,為了確保資料庫的安全性和正常運轉,對資料庫進行初始化操作。這個初始化操作涉及下面5個步驟。

(1)安裝驗證密碼外掛。

(2)設定root管理員在資料庫中的專有密碼。

(3)隨後刪除匿名賬戶,並使用root管理員從遠端登入資料庫,以確保資料庫上執行的業務的安全性。

(4)刪除預設的測試資料庫,取消測試資料庫的一系列訪問許可權。

(5)重新整理授權列表,讓初始化的設定立即生效。

對於上述資料庫初始化的操作步驟,在下面的輸出資訊旁邊我做了簡單註釋。

root@ubuntu-virtual-machine:~# mysql_secure_installation

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin? # 要安裝驗證密碼外掛嗎?

Press y|Y for Yes, any other key for No: N # 這裡我選擇N
Please set the password for root here.

New password: # 輸入要為root管理員設定的資料庫密碼

Re-enter new password: # 再次輸入密碼

By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y # 刪除匿名賬戶
Success.

Normally, root should only be allowed to connect from
‘localhost’. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : N # 禁止root管理員從遠端登入,這裡我沒有禁止

… skipping.
By default, MySQL comes with a database named ‘test’ that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y # 刪除test資料庫並取消對它的訪問許可權

  • Dropping test database…
    Success.

  • Removing privileges on test database…
    Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y # 重新整理授權表,讓初始化後的設定立即生效
Success.

All done!

檢查mysql服務狀態:

systemctl status mysql

顯示如下結果說明mysql服務執行是正常的:

再次用mysql -u root -p命令,Enter password:處輸入剛設定的密碼,回車,就能夠進入mysql資料庫。

使用 use mysql; 命令開啟mysql命名的資料庫,顯示當前資料庫的表:show tables; 查詢user表裡的資料:select * from user;(user表裡是mysql資料庫的所有賬戶資訊)

現在配置mysql允許遠端訪問,首先編輯 /etc/mysql/mysql.conf.d/mysqld.cnf 配置檔案:

vim /etc/mysql/mysql.conf.d/mysqld.cnf

註釋掉bind-address = 127.0.0.1

儲存退出,然後進入mysql資料庫,執行授權命令:

mysql -u root -p

mysql> grant all on.to root@’%’ identified by ‘你的密碼’ with grant option;

mysql> flush privileges; # 重新整理許可權

mysql> exit

然後執行exit命令退出mysql服務,再執行如下命令重啟mysql:

systemctl restart mysql

現在Windows下可以使用Navicat圖形化工具遠端連線Ubuntu下的MySQL資料庫,輸入剛授權遠端許可權的密碼。

這裡順便再分享下:Navicat for MySQL 10.1.7安裝包

連結:https://pan.baidu.com/s/1CyDXr79v7Ufc60fv_XQ_gA ,提取碼:ohf8

OK,到這裡Ubuntu18.04下安裝MySQL已經完成了。

操作過程中我遇到了以下錯誤:

E: 無法獲得鎖 /var/lib/dpkg/lock-frontend - open (11: 資源暫時不可用)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

轉載 https://blog.csdn.net/zhemeiyouyong/article/details/99905392

解決方法,參考自文章:https://www.linuxidc.com/Linux/2018-12/155949.htm

ubuntu系統:今天開啟電腦登陸mysql:mysql -uroot -p
結果發現了這個錯誤

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
  • 1

然後我就在/var/run/mysqld/中找mysqld.sock,發現這個資料夾是空的在網上搜一下發現,加一個軟連線就可以了,結果所要連結的檔案也沒有找到,然後就想到了重灌mysql,然後

sudo apt-get --purge remove mysql-server
sudo apt-get --purge remove mysql-client
sudo apt-get autoremove 
sudo apt-get --purge remove mysql-common 

然後重新安裝

sudo apt-get install mysql-server mysql-client

結果安裝過程中出現了錯誤: 候選項路徑 /etc/mysql/mysql.cnf 不存在,然後google一下

sudo apt-get remove --purge mysql-\*
sudo apt-get install mysql-server mysql-client

解決了問題,但是mysq.sock問題,以後一定要查一下這些命令,不要每次都是直接去查,而不去想 《轉載》

Mysql-8.0.19 版本的安裝說明請移步:Linux下安裝mysql-8.0.19

Mysql資料庫的安裝對於開發者來說,是我們必然會面對的問題,它的安裝過程其實並不複雜,並且網路上的安裝教程也非常多,但是對於新手來說,各種不同形式的安裝教程,又給新手們帶來了要選擇哪種方式進行安裝的難題,而且很多時候按照教程也沒有能夠安裝成功,安裝過程出現各種各樣的錯誤。

下面記錄了我在Linux(Centos 7)環境下安裝Mysql的完整過程,實操記錄,絕非水文,如有錯誤或遺漏,歡迎指正。

本文件講解安裝版本為mysql-5.7.24,對於5.7.24之後的版本,不適用此說明文件,主要原因在於之後版本的mysql配置檔案的目錄位置和結構有所改變,使用此說明可能會出現找不到配置檔案或者配置後不生效的情況。

安裝過程中務必保證檔案路徑的前後統一,否則可能會導致不可預期的結果,推薦直接使用文中的命令進行操作。

一 安裝前準備

1、檢查是否已經安裝過mysql,執行命令

[root@localhost /]# rpm -qa | grep mysql

從執行結果,可以看出我們已經安裝了mysql-libs-5.1.73-5.el6_6.x86_64,執行刪除命令

[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

再次執行查詢命令,檢視是否刪除

[root@localhost /]# rpm -qa | grep mysql

2、查詢所有Mysql對應的資料夾

[root@localhost /]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost lib]# find / -name mysql
/data/mysql
/data/mysql/mysql

刪除相關目錄或檔案

[root@localhost /]#  rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql 

驗證是否刪除完畢

[root@localhost /]# whereis mysql
mysql:
[root@localhost /]# find / -name mysql
[root@localhost /]# 

3、檢查mysql使用者組和使用者是否存在,如果沒有,則建立

[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd -r -g mysql mysql
[root@localhost /]# 

4、從官網下載是用於Linux的Mysql安裝包

下載命令:

[root@localhost /]#  wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

也可以直接到 mysql官網 選擇對應版本進行下載。

二 安裝Mysql

1、在執行wget命令的目錄下或你的上傳目錄下找到Mysql安裝包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
執行解壓命令:

[root@localhost /]#  tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[root@localhost /]# ls
mysql-5.7.24-linux-glibc2.12-x86_64
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

解壓完成後,可以看到當前目錄下多了一個解壓檔案,移動該檔案到/usr/local/下,並將資料夾名稱修改為mysql

如果/usr/local/下已經存在mysql,請將已存在mysql檔案修改為其他名稱,否則後續步驟可能無法正確進行。

執行命令如下:

[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/
[root@localhost /]# cd /usr/local/
[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

如果/usr/local/下不存在mysql資料夾,直接執行如下命令,也可達到上述效果。

[root@localhost /]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql

2、在/usr/local/mysql目錄下建立data目錄

[root@localhost /]# mkdir /usr/local/mysql/data

3、更改mysql目錄下所有的目錄及資料夾所屬的使用者組和使用者,以及許可權

[root@localhost /]# chown -R mysql:mysql /usr/local/mysql
[root@localhost /]# chmod -R 755 /usr/local/mysql

4、編譯安裝並初始化mysql,務必記住初始化輸出日誌末尾的密碼(資料庫管理員臨時密碼)

[root@localhost /]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
補充說明:

第4步時,可能會出現錯誤:

出現該問題首先檢查該連結庫檔案有沒有安裝使用 命令進行核查

[root@localhost bin]# rpm -qa|grep libaio   
[root@localhost bin]# 

執行命令後發現系統中無該連結庫檔案

[root@localhost bin]#  yum install  libaio-devel.x86_64

安裝成功後,繼續執行資料庫的初始化命令,此時可能會出現如下錯誤:

執行如下命令後:

[root@localhost bin]#  yum -y install numactl

執行無誤之後,再重新執行第4步初始化命令,無誤之後再進行第5步操作!

5、執行初始化命令成功後,輸出日誌如下:

記錄日誌最末尾位置root@localhost:後的字串,此字串為mysql管理員臨時登入密碼。

6、編輯配置檔案my.cnf,新增配置如下

[root@localhost bin]#  vi /etc/my.cnf

[mysqld]
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1

7、測試啟動mysql伺服器

[root@localhost /]# /usr/local/mysql/support-files/mysql.server start

顯示如下結果,說明資料庫安裝並可以正常啟動

異常情況

如果出現如下提示資訊

Starting MySQL... ERROR! The server quit without updating PID file

檢視是否存在mysql和mysqld的服務,如果存在,則結束程序,再重新執行啟動命令

#查詢服務
ps -ef|grep mysql | grep -v grep
ps -ef|grep mysqld | grep -v grep

#結束程序
kill -9 PID

#啟動服務
 /usr/local/mysql/support-files/mysql.server start

8、新增軟連線,並重啟mysql服務

[root@localhost /]#  ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
[root@localhost /]#  ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost /]#  service mysql restart

9、登入mysql,修改密碼(密碼為步驟5生成的臨時密碼)

[root@localhost /]#  mysql -u root -p
Enter password:
mysql>set password for root@localhost = password('yourpass');

10、開放遠端連線

mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;

11、設定開機自動啟動

1、將服務檔案拷貝到init.d下,並重命名為mysql
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、賦予可執行許可權
[root@localhost /]# chmod +x /etc/init.d/mysqld
3、新增服務
[root@localhost /]# chkconfig --add mysqld
4、顯示服務列表
[root@localhost /]# chkconfig --list

至此,mysql5.7.24版本的資料庫安裝,已經完成。

作者:開心跳蚤
連結:https://www.jianshu.com/p/276d59cbc529
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。