在linux中设置MySQL数据库时常见问题
1.安装MySQL服务:apt-get install mysql-server
2.启动mysql服务:service mysql start
3.如果在安装过程中没有要求设置mysql的root账户密码,那么默认是空密码,无法在远程主机登录,只能在本机登录。
4.可以先在本机查看相关账户和主机信息:
查看数据库服务器的用户,和用户登录主机
命令行下输入:mysql 进入mysql命令行
mysql->use mysql;
mysql->select user,host from user;
给用户设置远程登录权限:
mysql>update user set host = '%' where user = 'root';
5.由于不能远程空密码登录还需要给root用户设置密码,如果不需要root远程登录的可以直接在命令行下重新创建一个新用户并设置权限即可。
通过查看空密码的原因是因为mysql5.7安装时采用了auth_socket插件。该插件不关心,也不需要密码。它只检查用户是否使用UNIX套接字进行连接,然后比较用户名。
6.如果用平常的mysql查询语句修改密码是无法成功的,因为插件没有修改,所以使用下面的语句同时修改插件和密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '@mysql123456';
7.这是通过修改root用户的方式远程登录,那么下面介绍通过创建新用户的方式来远程登录:
添加新用户:create user 'xbxb'@'%' IDENTIFIED BY 'x1256' ;
这时会报错,因为初始策略中密码设置等级为中,修改了半天密码依然无法成功,因此只能修改初始策略将密码等级设置为低:
查看初始策略:SHOW VARIABLES LIKE 'validate_password%';
修改初始策略:set global validate_password_policy=LOW;
然后就是给用户设置权限,具体设置根据个人需要,这里就不做说明了。
8.用户设置成功之后就是配置文件了
ubuntu中配置文件在/etc/mysql 中
数据文件在 /var/lib/mysql 中
一般其他版本的mysql具体配置文件内容修改都在my.cnf这个文档中,但是当我在修改这个文档之后却出现了错误,通过查找原因之后发现这个版本的mysql配置文件修改在/etc/mysql/mysql_conf.d/mysqld.cnf中,由于my.cnf是引用了该文件夹的,如果再次修改my.cnf启动mysql服务时就会报错。
一般而言,如果没有具体使用要求其实可以不用修改他的配置文件。