目录
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有一端的防火墙设置
 - 解决办法:开放安全组,防火墙设置开放该端口,或者换热点(某些网络会自动墙掉他认为不安全的地址)