目录
Mysql数据库
Redis数据库
Mysql数据库
Ubuntu安装mysql
1.依次执行下述命令更新软件包和安装mysql
1 | # 更新软件包列表 |
2.初始化配置msql规则
- 执行下述语句
1
sudo mysql_secure_installation
- Enter current password for root (enter for none):<–初次运行直接回车
- xxx<-是否安装验证密码插件,建议No,因为安装后会限制简单密码的设置
- Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
- New password: <– 设置root用户的密码
- Re-enter new password: <– 再输入一次你设置的密码
- Remove anonymous users? [Y/n]<–是否删除匿名用户,生产环境建议删除,所以直接回车
- Disallow root login remotely? [Y/n] <–禁止root远程登录?根据自己的需求选择Y/n并回车
- Remove test database and access to it? [Y/n] <– 是否删除安装时自动创建的test数据库,直接回车(根据个人需求)
- Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车
mysql配置
1.配置mysql权限
- 进入mysql环境
1
mysql -u root -p
- 创建远程连接的用户
1
2
3
4mysql>CREATE USER 'root'@'%' IDENTIFIED BY '123456';
# '%'表示任意ip地址都可以用这个用户访问
# root是用户名,123456是密码 - 给这个用户赋予所有操作的权限
1
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
- 刷新
1
mysql>FLUSH PRIVILEGES;
- 退出到控制台并重启mysql
1
2
3mysql>quit;
service mysql start
2.允许远程连接
- 修改/etc/mysql/mysql.conf.d/mysqld.cnf,将bind-address = 127.0.0.1前面加# 注释掉
1
vim /etc/mysql/mysql.conf.d/mysqld.cnf
远程连接
1.Navicat配置ip(云服务器公网ip)、用户名、密码和端口3306后即可连接
可能会出现的问题
1.mysql授权时使用以下语句报错sql语句不合法
1 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'WITH GRANT OPTION; |
- 原因:在Mysql 8版本必须分两步来实现设置用户权限【先创建用户、在对该用户分配用户权限】,最后刷新权限
- 解决办法:先创建,再分配权限即可
1
2mysql>CREATE USER 'root'@'%' IDENTIFIED BY '123456';
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
2.远程连接报10038错误
- 原因:云服务器3306端口未开放
- 解决办法:安全组设置,然后重启云服务器
- 优先级:1
- 协议类型:自定义TCP
- 端口范围:3306/3306
- 授权对象:0.0.0.0/0
3.远程连接报1251错误
- 原因:mysql 8采用另一种密码加密方式
- 解决办法:把root用户的密码加密方式改成老版本(另一种方法是更新Navicat)
1
2
3
4
5mysql>SELECT host,user,plugin,authentication_string From mysql.user;
mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql>FLUSH PRIVILEGES;- 如果修改密码的时候报failed for ‘root‘@’%’错误,那么还需要依次执行以下语句
1
2
3mysql>update mysql.user set Host='%' where User='root';
mysql>flush privileges;
- 如果修改密码的时候报failed for ‘root‘@’%’错误,那么还需要依次执行以下语句
4.远程连接报1045错误
- 原因:远程没有权限或密码错误
- 解决办法:更改mysql设置的远程用户的密码
1
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Redis数据库
Ubuntu安装Redis
1.依次执行下述命令更新软件包和安装Redis
1 | # 更新软件包列表 |
2.配置文件
- 打开配置文件
1
sudo vim /etc/redis/redis.conf
- 添加密码
1
2
3
4requirepass 123456
# 表示密码为123456,如果把requirepass注释掉就说明不需要密码
# 如果不设密码的话就要把protected-mode改成no - 开启Redis的远程连接
1
2
3
4#bind 127.0.0.1
# 把这行注释掉,不然默认绑定本地连接
# 或者改成bind 0.0.0.0表示绑定本机上的所有ip地址 - 更改端口
1
port 6379
- 保存配置后重启Redis
1
sudo service redis-server restart
3.使用以下命令可以看Redis运行的是哪个端口
1 | ps -aux|grep redis |
4.
使用以下命令可以建立一个交互式连接
1 | redis-cli -h 127.0.0.1 -p 6379 |
可能会出现的问题
1.No connection could be made because the target machine actively refused it
- 原因:Redis拒绝远程访问
- 注释掉配置文件的bind 127.0.0.1并设置密码,或注释掉配置文件的bind 127.0.0.1并关闭protected-mode
2.NOAUTH Authentication required.
- 原因:Redis设置了密码
- 解决办法:用这个命令输入密码auth “xx”
3.云服务器上的端口开放了,但是远程连接超时
- 原因:安全组未开放,c或s有一端的防火墙设置
- 解决办法:开放安全组,防火墙设置开放该端口,或者换热点(某些网络会自动墙掉他认为不安全的地址)