Flask中MySQL预热
Posted Flask学习笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask中MySQL预热相关的知识,希望对你有一定的参考价值。
Flask和mysql
导读
现在
Flask
已经学习到了类视图,它其实是这样一个关系
FLask
高级视图
视图函数
app.route\add_url_rule
类视图
蓝图
blueprint
(这个接下来要讲)结束蓝图后,接着就是
Flask
数据库的结合SQLAlchemy
.在学习SQLAlchemy
之前,希望和大家一起了解学习一下mysql
这篇文章不涉及理论,暂时是
MySQL
的安装.以下文章会在周末做成视频上传,以便对照操作.
Centos 安装配置
1.Centos安装
在虚拟机中安装了Centos,准备学习一下mysql,安装过程就不表述了
2.配置中文输入法,安装VMwork-Tool
配置中文输入法:
默认安装完毕之后没有中文输入法,但是可以自己手动调制出来:
直接进入控制中心,选择语言:点击左下角的 “+”号。找到
Chinese(China)
或者其它Chinese(..)
直到找到
Chinese(Intelligent Pinyin)
为止.
装虚拟机工具,只需要把光盘中的压缩文件复制下来,解压缩安装,然后执行重启即可.
3.开启ssh
全部操作使用的是
root
账户查看系统时候安装了
open-ssh
# yum list installed | grep ssh
libssh2.x86_64 1.4.3-10.el7_2.1 @anaconda
openssh.x86_64 7.4p1-11.el7 @anaconda
openssh-clients.x86_64 7.4p1-11.el7 @anaconda
openssh-server.x86_64 7.4p1-11.el7 @anaconda如果没有安装,使用
yum
命令安装编辑
ssh
的配置文件,以便支持ssh# vim /etc/ssh/sshd_config
# 打开端口
Port 22
#AddressFamily any 打开监听任意主机
ListenAddress 0.0.0.0
ListenAddress ::
# 打开远程登陆
PermitRootLogin yes
# 开启使用用户名密码来作为连接验证
PasswordAuthentication yes将
sshd
添加到自启动列表# systemctl enable sshd
启动服务
# systemctl restart sshd.service
安装mysql
Centos: Centos7x64
Mysql:MySQL 5.7.32
1.下载安装包
官网:
https://dev.mysql.com/downloads/mysql/
在
Select Operationg System
中选择Source Code
在下面的
Select OS Version
选择Generic Linux(Architecture Independent)
然后再下面的部分可以看到
Compressed TAR Archive
,单击后面的Download
在弹出的界面中选择最下面的
No thanks, just start my download
就可以开始下载了下载
boost
下载网址为:http://www.boost.org/users/download/ 这个版本的MySQL要求boost的版本是1.59.
# wget --no-check-certificate http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
2.编译安装
安装必要的软件依赖
# yum install -y cmake bison bison-devel libaio-devel gcc gcc-c++ git ncurses-devel
解压Mysql:
# tar -zxvf mysql-5.7.32.tar.gz
将boost压缩包移动到解压后的源文件中
# mv boost_1_65_1.tar.gz mysql-5.7.32进入Mysql源文件目录,新建configure作为编译目录
# cd mysql-5.7.32
# mkdir configure
# cd configure使用cmake进行编译安装
# cmake .. -DBUILD_CONFIG=mysql_release \
-DINSTALL_LAYOUT=STANDALONE \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DENABLE_DTRACE=OFF \
-DWITH_EMBEDDED_SERVER=OFF \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_SSL=bundled \
-DWITH_ZLIB=system \
-DWITH_PAM=ON \
-DCMAKE_INSTALL_PREFIX=/var/mysql/ \
-DINSTALL_PLUGINDIR="/var/mysql/lib/plugin" \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EDITLINE=bundled \
-DFEATURE_SET=community \
-DCOMPILATION_COMMENT="MySQL Server (GPL)" \
-DWITH_DEBUG=OFF \
-DWITH_BOOST=..
如果编译错误,需要删除 CMakeCache.txt,从新编译
# rm -rf CMakeCache.txt如果出现以下提示,表示成功:
-- Configuring done
-- Generating done使用make进行编译;
# mace
# 编译成功的标识
[100%] Building CXX object sql/CMakeFiles/udf_example.dir/udf_example.cc.o
Linking CXX shared module udf_example.so
[100%] Built target udf_example
[100%] Built target my_safe_process安装mysql
# make install
3.初始化数据库
添加mysql用户,并设置数据库文件夹和日志文件
useradd -s /sbin/nologin mysql
mkdir /mysql_data
mkdir /var/mysql/log
chown -R mysql:mysql /mysql_data/
chown -R mysql:mysql /var/mysql/log
# 创建mysqld_safe 的文件夹
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb/
chmod 755 /var/log/mariadb/修改配置文件:
# vim /etc/my.cnf
# 在[mysqld]中添加
[mysqld]
port=3306
datadir=/mysql_data/
log_error=/var/mysql/log/error.log
basedir=/var/mysql/
socket=/var/lib/mysql/mysql.sock初始化数据库
#/var/mysql/bin/mysqld --initialize --user=mysql
查看数据文件和日志文件:
[root@localhost ~]# ll /mysql_data/
总用量 122920
-rw-r-----. 1 mysql mysql 56 10月 27 03:45 auto.cnf
-rw-r-----. 1 mysql mysql 419 10月 27 03:45 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 10月 27 04:25 ibdata1
-rw-r-----. 1 mysql mysql 50331648 10月 27 04:25 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 10月 27 03:45 ib_logfile1
-rw-r-----. 1 mysql mysql 12582912 10月 27 04:25 ibtmp1
-rw-r-----. 1 mysql mysql 7 10月 27 04:25 localhost.pid
drwxr-x---. 2 mysql mysql 4096 10月 27 03:45 mysql
drwxr-x---. 2 mysql mysql 8192 10月 27 03:45 performance_schema
drwxr-x---. 2 mysql mysql 8192 10月 27 03:45 sys
[root@localhost ~]# ll /var/mysql/log/
总用量 4
-rw-r-----. 1 mysql mysql 802 10月 27 03:45 error.log
4.配置启动文件和环境
从模板文件中复制启动文件
cp /var/mysql/support-files/mysql.server /etc/init.d/mysqld
修改启动文件
# vim /etc/init.d/mysqld
# 找到以下并修改
basedir=/var/mysql
datadir=/mysql_data创建软连接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
启动mysqld
/etc/init.d/mysqld start
Starting MySQL. SUCCESS!设置mysql开机启动
systemctl enable mysqld
配置环境变量
# vim ~/.bash_profile
# 修改为
PATH=$PATH:$HOME/bin:/var/mysql/bin
# source ~/.bash_profile
5.修改root的登录密码
MySQL从5.7开始不支持安装后使用空密码进行登录,因此在这里需要先查询程序生成的临时密码
# cat /var/mysql/log/error.log | grep password
2019-10-26T19:45:57.455760Z 1 [Note] A temporary password is generated for root@localhost: <3FQ)ixj0gh<初始密码是
<3FQ)ixj0gh<
使用初始密码并登录,修改
# mysql -uroot -p
Enter password:
mysql> alter user 'root'@'localhost' identified by 'your_password';
Query OK, 0 rows affected (0.00 sec)
your_password
是自己设置的新密码(2008.Cn123
)
6.开启远程链接
1.修改my.cnf
vim /etc/my.cnf
#找到bind-address = 127.0.0.1这一句,然后注释掉保存退出2.在服务端开启支持
mysql> grant all privileges on *.* to 'root'@'%' identified by 'password';
mysql> flush privileges;
第一个
*
,匹配访问的数据库第二个
*
,匹配访问的表
root
,表示登录的用户名
password
:匹配root的密码
flush
即可生效3.重启mysql
service mysql restart
4.本地测试:
mysql -h 服务器ip地址 -P 3306 -u root -p
使用客户端连接
下载MySQL Workbench并安装,测试链接数据库
安装
mycli
并测试链接pip install mycli
$ mycli --help
Usage: mycli [OPTIONS] [DATABASE]
Options:
-h, --host TEXT 数据库的主机地址。
-P, --port INTEGER 用于连接的端口号。Honors $MYSQL_TCP_PORT
-u, --user TEXT 连接到数据库的用户名。
-S, --socket TEXT 用于连接的套接字文件。
-p, --password TEXT 连接到数据库的密码。
--pass TEXT 连接到数据库的密码。
-v, --version mycli的版本输出。
-D, --database TEXT 使用数据库。
-R, --prompt TEXT 提示格式 (Default: "\t \u@\h:\d> ")
-l, --logfile FILENAME 将每一个查询和它的结果记录到一个文件中。
--defaults-group-suffix TEXT 读取指定的后缀的配置组。
--defaults-file PATH 只从给定文件中读取默认选项。
--auto-vertical-output 如果结果比终端更宽,自动切换到垂直输出模式。
--login-path TEXT 从登录文件中读取此路径。
--help 显示此帮助消息
mycli
开启多行模式
mycli
默认使用enter
结束,mysql工具大多是使用;
来结束的.临时开启方法:
F3
修改配置开启:
$ sudo vim ~/.myclirc
# 找到并将它的值设置为True
multi_line = True
以上是关于Flask中MySQL预热的主要内容,如果未能解决你的问题,请参考以下文章