在Ubuntu中安装MySQL有两种方法,一种是用apt-get命令安装,另一种是去下载官网安装包进行安装,这里用较简便的第一种方法进行安装。
安装MySQL命令为:
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
其中,主要的为第一条命令 sudo apt-get install mysql-server ,在安装中若出现创建用户密码的提示,就按照提示输入创建,
但有可能安装时直到安装结束也没有出现提示,此时,登录mysql数据库,则无法进入
于是需要我们手动设置root密码。
而设置密码,首先要先登录进去数据库,mysql默认安装时会有一个随机的密码,其初始化在 mysql/debian.cnf 中,用以下命令打开文件
sudo vim /etc/mysql/debian.cnf
debian.cnf 文件内容如下:
其中,user和password为初始用户和随机的初始密码,下面就用这个用户名和密码来进入数据库:
mysql -u debian-sys-maint -p
登录成功后,就可以设置root用户密码了:
update mysql.user set authentication_string=password('password') where user='root'and Host = 'localhost';
显示如下的界面就说明设置root密码成功(以密码为123为例):
重启MySQL,用 sudo mysql -uroot -p 即可登录成功:
然而,这里出现了一个问题,发现若不加sudo,只用 mysql -uroot -p 的话会登录失败:
经百度得知,原因是mysql使用了auth_socket plugin进行认证
于是我们首先查看用户的权限:
use mysql;
select user,host,plugin from user;
可以看出,root用户为auth_sock,所以要将其改为mysql_native_password,即使用mysql自带密码认证功能,用以下命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
flush privileges; //使更改生效
修改完后,再次查看,可以看到修改成功:
至此,可以直接用 mysql -uroot -p 登录数据库了。
另外,若要检验是否安装mysql成功,可以输入如下命令
sudo netstat -tap | grep mysql
如果出现如下图,即 mysql 的 socket 处于 listen 状态,表示安装成功:
其中netstat命令需要安装net-tools,命令为:
sudo apt-get install net-tools
附:MySQL相关命令
查看是否安装MySQL(也可用来确认MySQL是否卸载删除):
rpm -qa|grep -i mysql
查看MySQL版本:
mysql -V
删除MySQL:
sudo apt-get autoremove --purge mysql-server-5.7
sudo apt-get remove mysql-server
sudo apt-get autoremove mysql-server
sudo apt-get remove mysql-common
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P //删除多余数据
启动、停止、重启数据库:
service mysql start
service mysql stop
service mysql restart
查看MySQL运行状态:
service mysql status