为新服务配置mysql
服务器端配置
工欲善其事,必先利其器。 后端开发人员必备的一项技能就是服务器的配置。以下我们以linux版本为 ubuntu 20.04版本,mySQL 版本8.0 为例来做说明。
忘记root登录密码的处理方法
首先 通过 vim命令来 编辑mysql的配置文件,然后在 [mysqld]段段中加入 skip-grant-tables语句,保存并退出该文件。
用 vim /etc/my.cnf 后者 vim /etc/mysql/mysql.conf.d/mysqld.cnf
然后重启 mysql,
用service mysqld restart 。
之后就可以免密登录mysql。
mysql -u root-p
修改密码的方法参考本文后续章节。
注意 增加用户等操作需要重新设置好root密码,重新登录。
修改mysql的配置文件
通过配置linux操作系统中的配置文件来实现,需要root用户权限,可以直接登陆用户来操作。
vim /etc/mysql/mysql.conf.d/mysqld.cnf
1.取消本地绑定,允许远端访问。
#bind-address = 127.0.0.1
2.允许远端访问以后也就带来了安全风险,通过如下办法来增强安全。
- 改变默认端口号
port = 99061 - 不要使用root,test等常用用户名作为访问数据库的用户。访问数据库的用户配置需要直接在数据库里面去操作。
最后别忘了重新启动mysql server,以使新的配置起作用。
/etc/init.d/mysql restart
修改数据库用户设置
在linux系统的命令行中,直接运行mysql命令进入数据库设置界面。
- 创建新用户
命令为
create user 'testname'@'%' identified by '123456'
如果用户名已经创建想要修改器密码可以用命令:
8.0 mySQL
ALTER USER 'testname'@'%' IDENTIFIED WITH mysql_native_password BY 'dansir123'
如果老一点的mysql版本,用命令:
SET PASSWORD FOR 'testname'@'%' = OLD_PASSWORD('123456');
- 给新用户授权
授权(testname用户)远程连接权限(不建议)
GRANT ALL PRIVILEGES ON *.* TO 'testname'@'%'
FLUSH PRIVILEGES;
grant all privileges on . to ‘testname’@’%’; 这条命令只适用于mySQL较高的版本,比如8.0.。较低的mysql版本后面还需要带IDENTIFIED BY 子句。
create user 'root'@'116.230.1.1' identified by 'yourpassowrd' ;
ALTER USER 'root'@'116.230.1.1' IDENTIFIED WITH mysql_native_password BY 'youpassword'
FLUSH PRIVILEGES;
- 限制IP访问
首先到一些网站上去看自己的IP地址是多少,不是通过本地cmd看局域网内的IP地址,而是要找外网IP地址。通过如https://www.ip138.com/这样的网站,可以获知自己电脑对外的IP地址。
116.230.xxx.xxx
grant all privileges on %database_name.* to 'username'@'116.230.xxx.xxx'
FLUSH PRIVILEGES;