提示:以下操作均在root權限下進行。
查看有沒有安裝MySQL:dpkg -l | grep mysql
1、安裝MySQL:sudo apt install mysql-server
2、安裝完成之后可以使用如下命令來檢查是否安裝成功:
netstat -tap | grep mysql
通過上述命令檢查之后,如果看到有 mysql 的socket處於 LISTEN 狀態則表示安裝成功。
3、登錄mysql數據庫可以通過如下命令: sudo mysql -u root -p
-u 表示選擇登陸的用戶名, -p 表示登陸的用戶密碼,現在是mysql數據庫是沒有密碼的,Enter password:處直接回車,就能夠進入mysql數據庫。
4、然后通過 show databases;
就可以查看當前的所有數據庫。
接下來,為了確保數據庫的安全性和正常運轉,對數據庫進行初始化操作。這個初始化操作涉及下面5個步驟。
(1)安裝驗證密碼插件。
(2)設置root管理員在數據庫中的專有密碼。
(3)隨后刪除匿名賬戶,並使用root管理員從遠程登錄數據庫,以確保數據庫上運行的業務的安全性。
(4)刪除默認的測試數據庫,取消測試數據庫的一系列訪問權限。
(5)刷新授權列表,讓初始化的設定立即生效。
對於上述數據庫初始化的操作步驟,在下面的輸出信息旁邊我做了簡單注釋。
root@ubuntu-virtual-machine:~# sudo 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!
5、檢查mysql服務狀態: systemctl status mysql
顯示如下結果說明mysql服務運行是正常的:
再次用mysql -u root -p命令,Enter password:處輸入剛設置的密碼,回車,就能夠進入mysql數據庫。
使用 use mysql; 命令打開mysql命名的數據庫;
show tables;
顯示當前數據庫的表
select * from user; 查詢user表里的數據:(user表里是mysql數據庫的所有賬戶信息)
2. 配置mysql允許遠程訪問
1、開啟數據庫3306端口
首先,使用如下指令查看3306端口是否對外開放。
netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
如果顯示如上,說明mysql端口目前只監聽本地連接127.0.0.1。然后需要修改mysql的配置文件
2、首先編輯 /etc/mysql/mysql.conf.d/mysqld.cnf 配置文件:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注釋掉bind-address = 127.0.0.1
保存退出。
3、然后進入mysql數據庫,執行授權命令:
mysql -u root -p
mysql> grant all on *.* to root@'%' identified by '你的密碼' with grant option;
mysql> flush privileges; # 刷新權限
mysql> exit
4、然后執行exit命令退出mysql服務,再執行如下命令重啟mysql:
sudo service mysql restart
5、在防火牆中開啟3306端口
如果執行了前三個步驟仍然不能遠程訪問mysql,那么有可能是防火牆阻止訪問,需要開啟允許訪問。
sudo ufw allow 3306
然后使用navicat登錄就可以了
OK,到這里Ubuntu18.04下安裝MySQL已經完成了。