1.安装
# sudo apt-get install mysql-server
# apt-get install mysql-client
# sudo apt-get install libmysqlclient-dev
2.查看密码
# sudo vim /etc/mysql/debian.cnf
3.登录
# mysql -u user_name -p
4.修改密码并修改root的plugin字段,plugin root的字段是auth_socket,我们改掉它为mysql_native_password
#mysql>update user set authentication_string=password("ln122920"),plugin='mysql_native_password' where user='root';
忽略警告:最新版mysql取消了password函数
5.退出,重启,登录
#mysql>quit;
# sudo service mysql restart
# mysql -u root -p
抛错:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
# sudo mysql -u root -p
可登录
6.解决ERROR 1698 (28000): Access denied for user 'root'@'localhost'
# sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
进入到这个配置文件,然后在这个配置文件中的[mysqld]这一块中加入skip-grant-tables这句话:
[mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
character-set-server=utf8
collation-server=utf8_general_ci
skip-grant-tables
使得不用密码也可以登录
登录root退出,并注释掉skip-grant-tables,重启mysql;
远程不能访问数据库问题
1、查看数据库用户host列是localhost还是%,必须改为%;
2、把/etc/my.cnf中的 bind-address = 127.0.0.1前加一个#注释掉,如果你的my.cnf里没有这个bind-address也是正常的,就不用理他了;
3、如果开了防火墙,注意看3306端口是不是打开了,提醒,在centos 7中,默认用的是firewall,不是iptable了;
4、如果是ecs主机,看看你的这个实例的安全规则是不是设置正确。