Ubuntu 16.04安裝MySQL及問題解決

Ubuntu 16.04下使用如下命令便可進行MySQL安裝:mysql

sudo apt-get install mysql-server

上述命令會安裝如下包:
apparmor
mysql-client-5.7
mysql-common
mysql-server
mysql-server-5.7
mysql-server-core-5.7
所以無需再安裝mysql-client等。安裝過程會提示設置mysql root用戶的密碼,設置完成後等待自動安裝便可。默認安裝完成就啓動了mysql。linux

  • 啓動和關閉mysql服務器:
 service mysql start service mysql stop

這裏寫圖片描述

  • 確認是否啓動成功:
 sudo netstat -tap | grep mysql

這裏寫圖片描述

  • 進入mysql shell界面:
 mysql -u root -p

這裏寫圖片描述

  • 解決利用sqoop導入MySQL中文亂碼的問題
    致使導入時中文亂碼的緣由是character_set_server默認設置是latin1,以下圖。
    這裏寫圖片描述
    能夠單個設置修改編碼方式set character_set_server=utf8;可是重啓會失效,建議按如下方式修改編碼方式。
    (1)編輯配置文件。sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
    (2)在[mysqld]下添加一行character_set_server=utf8。以下圖
    這裏寫圖片描述
    (3)重啓MySQL服務。service mysql restart
    (4)登錄MySQL,並查看MySQL目前設置的編碼show variables like "char%";
    這裏寫圖片描述
    這樣就能夠愉快的導入中文了!

下面回顧一下安裝過程當中我遇到的問題
一、安裝到Renaming removed key_buffer and myisam-recover options (if present)就卡住了,並且ctrl+C 也沒法退出,最後我關閉了終端強制退出了,可是我發現運用sudo netstat -tap | grep mysql 竟然顯示是啓動成功的,但是進入shell界面就會出現問題,提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:YES)網上找了一堆方法,都沒法解決。
無奈考慮卸載重裝:sql

sudo apt-get autoremove mysql* --purge sudo apt-get remove apparmor  //這個apparmor是在裝mysql-server時裝上的,和安全有關

二、重啓電腦後(不少時候重啓是法寶),再次利用命令apt-get安裝mysql-server,運行到Renaming removed key_buffer and myisam-recover options (if present)仍然卡住了,我再次停止了終端,發現啓動也是成功的,嘗試進入shell界面,出現另外一種新的錯誤:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2),而後又是找了不少國內外資料,國內百度沒法搜索出和這個錯誤徹底相關的,仍是老實FQ上谷歌,提出的方案是須要刪除一些重複的配置文件,可是我連這個/var/run/mysqld/mysqld.sock沒有,所以仍然沒法解決。
再次卸載。考慮必定要卸載很是完全。shell

sudo apt-get autoremove mysql* --purge sudo apt-get remove apparmor sudo rm /var/lib/mysql/ -R //很是重要 sudo rm /etc/mysql/ -R //很是重要

三、重啓電腦,再次利用命令sudo apt-get install mysql-server 順利安裝成功!安全

配置遠程訪問bash

a、編輯配置文件服務器

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf  將bind-address = 127.0.0.1註釋app

b、修改用戶權限socket

登陸MySQL:mysql -u root -p --遠程訪問 mysql -h 192.168.0.201 -P 3306 -u root -p123 123爲root用戶密碼ide

用戶權限:grant all on *.* to root@'%' identified by '1';  --添加一個用戶名是root且密碼是1的遠程訪問用戶

刷新:flush privileges;

查看是否添加成功:select user,host,authentication_string from user; --在5.7中用戶密碼是列authentication_string

退出:quit

c、重啓MySQL服務

/etc/init.d/mysql restart

三、完成且測試經過。

ps:

附上vi編輯要點:點擊i進入編輯模式,在按esc鍵輸入:wq!(保存並退出vi編輯模式)

總結:必定要卸載很是乾淨!

本文永久更新連接地址http://www.linuxidc.com/Linux/2017-05/143861.htm