虚拟机centOS安装
使用桥接网络
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z2Loj3zg-1592993545357)(centOS.assets/image-20200513105040122.png)]
按步骤安装
略
设置root密码
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yawmenV8-1592993545359)(centOS.assets/image-20200513105404189.png)]
MySQL5.7安装
安装方式:wget
yum intsall -y wget
下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
检测是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
如下图:安装成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cTK7JXFu-1592993545362)(centOS.assets/image-20200513112558296.png)]
安装mysql服务,与网速有关
yum install mysql-community-server
安装完成后,启动mysql服务
systemctrl start mysqld
查看mysqld服务,此处要查看到activity状态时running,OK
systemctrl status mysqld
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G9mHTf6J-1592993545365)(centOS.assets/image-20200513114007242.png)]
设置开机启动
systemctrl enable mysqld
重载服务
systemctrl daemon-reload
mysql5.7安装时会产生一个默认的密码,查看此密码文件一般在
grep "temporary password" /var/log/mysqld.log
进入mysql环境
修改密码规范
set password for ‘root’@‘localhost’=password(‘123456’);
查看 MySQL关于密码相关的配置
show variables like "%password%";
0是LOW,1是MEDIUM,2是STRONG
设置密码策略等级
set global validate_password_policy=1;
set global validate_password_length=6;
也可以通过etc/my.cnf
修改
允许远程连接:
mysql> use mysql;
mysql> update user set host = “%” where user=“root”;
mysql> flush privileges;
设置允许最大连接数:
[root@localhost ~]# vi /etc/my.cnf
#在[mysqld]下添加一行
max_connections=512
[root@localhost ~]# systemctl restart mysqld # 重启服务
重启服务
systemctl restart mysqld
解决远程连接问题:
2003等,centos7一般是防火墙的问题
CentOS7的默认防火墙为firewall,且默认是不打开的。
shell > systemctl start firewalld 启动friewall
shell > systemctl status firewalld 查看firewall启动情况
shell > firewall-cmd --zone=public --add-port=3306/tcp --permanent 开启3306端口
然后重启 firewalld #firewall-cmd --reload
使用 # firewall-cmd --query-port=3306/tcp 检查3306端口是否已经开启,如果显示yes,则表示防火墙已开启该端口。
# python sqlalchemy 超过8小时连接断开问题:
mysql> show variables like '%timeout%';
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | YES |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout | 31536000 |
| net_read_timeout | 30 |
| net_write_timeout | 60 |
| rpl_stop_slave_timeout | 31536000 |
| slave_net_timeout | 60 |
| wait_timeout | 28800 |
+-----------------------------+----------+
其中 interactive_timeout wait_timeout 28800 = 60 * 60 * 8 即8小时
方案一: 加这两个延时,加长时间,网上查询最大为24天,未实践
方案二:_engine = create_engine(db_url="db_url", pool_recycle=3600)
设置pool_recycle参数,修改sqlalchemy连接池时间,小于8小时,即当连接池小于这个时间,则会断开,重新创建,不会与mysql8小时冲突。
方案三: 设置poolclass为NullPool,测试失败,
方案四:
flask 项目
@app.teardown_appcontext
def shutdown_session(exception=None):
session.remove()
Redis安装
安装redis编译的c环境
yum -y install gcc-c++
安装Redis
-
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
-
解压文件到 /usr/local 下(
tar -xvf redis-5.0.3.tar.gz /usr/local
)[root@localhost package]# tar -xvf redis-5.0.3.tar.gz /usr/local/ tar: /usr/local:归档中找不到 tar: 由于前次错误,将以上次的错误状态退出 # 解决方案 [root@localhost package]# tar -xvf redis-5.0.3.tar.gz -C /usr/local/
-
编译redis(将.c文件编译成.o文件)
cd redis-5.0.3/ make
-
安装
必须进入 redis-5.0.3/
make PREFIX=/usr/local/redis install
命令安装redis到指定路径中执行完毕之后:
cd /usr/local/redis/bin
可以看见几个可执行文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iefUbI6K-1592993545371)(C:\Users\wc\AppData\Roaming\Typora\typora-user-images\image-20200518120250043.png)]
-
测试前端启动(cd /usr/local/redis/bin/)
./redis-server
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMH0sy2S-1592993545373)(C:\Users\wc\AppData\Roaming\Typora\typora-user-images\image-20200518120407838.png)]
看到这个,正常了
- 复制配置文件
进入redis-5.0.3中复制redis.conf 到 redis/bin下面
- 后端启动
直接运行 bin/redis-server将以前端模式启动,前端模式启动的缺点是启动完成后,不能在进行其他操作,不推荐
修改 redis/bin/redis.conf配置文件,daemonize yes 以后端模式启动。
vi /usr/local/redis/bin/redis.conf
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mj5BFNbn-1592993545374)(C:\Users\wc\AppData\Roaming\Typora\typora-user-images\image-20200518125904888.png)]
-
开启远程连接
修改 redis.conf
将
bind 127.0.0.1
修改为bind 0.0.0.0
redis.conf配置
-
新建一个redisdb用来存储缓存数据
mkdir /usr/local/redisdb
-
设置缓存文件生成和读取的目录
默认目录为: dir ./
修改为: dir /usr/local/redisdb
-
修改连接密码(可省略)
修改前:
# requirepass foobared
修改后:
requirepass password
连接命令: ./redis-cli -h 192.168.25.12 -p 6379 -a password
-
以守护进程启动
daemonize yes
-
开启aof持久化
appendonly yes
-
选择aof持久化策略
appendfsync everysec
-
开启远程访问
bind 0.0.0.0
配置完成之后重新启动redis服务
设置redis开机启动
shell > firewall-cmd --zone=public --add-port=6379/tcp --permanent 开启3306端口
-
进入/lib/systemd/system目录,创建一个名为redis.service文件
cd /lib/systemd/system && touch redis.service
-
在redis.service中写入下面内容
[Unit] Description=redis service Wants=network.target [Service] Type=forking ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf [Install] WantedBy=multi-user.target
-
设置开机启动
systemctl enable redis
-
启动,查看redis服务状态
systemctl start redis
systemctl status redis
正常:Active(running) -
查看redis运行信息
ps -aux | grep redis
或者
netstat -tunple
关闭重启的问题
为注册服务前, 使用 ps -aux | grep redis
/bin/redis.conf
[Install]
WantedBy=multi-user.target
3. 设置开机启动
`systemctl enable redis`
4. 启动,查看redis服务状态
`systemctl start redis`
`systemctl status redis` 正常:Active(running)
5. 查看redis运行信息
`ps -aux | grep redis`
或者
`netstat -tunple`
## 关闭重启的问题
为注册服务前, 使用 ps -aux | grep redis
然后 kill -9 pid