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 sshlibssh2.x86_64 1.4.3-10.el7_2.1 @anacondaopenssh.x86_64 7.4p1-11.el7 @anacondaopenssh-clients.x86_64 7.4p1-11.el7 @anacondaopenssh-server.x86_64 7.4p1-11.el7 @anaconda
如果没有安装,使用
yum
命令安装编辑
ssh
的配置文件,以便支持ssh# vim /etc/ssh/sshd_config# 打开端口Port 22#AddressFamily any 打开监听任意主机ListenAddress 0.0.0.0ListenAddress ::# 打开远程登陆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.oLinking 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 mysqlmkdir /mysql_datamkdir /var/mysql/logchown -R mysql:mysql /mysql_data/chown -R mysql:mysql /var/mysql/log# 创建mysqld_safe 的文件夹mkdir /var/log/mariadbtouch /var/log/mariadb/mariadb.logchown -R mysql:mysql /var/log/mariadb/chmod 755 /var/log/mariadb/
修改配置文件:
# vim /etc/my.cnf# 在[mysqld]中添加[mysqld]port=3306datadir=/mysql_data/log_error=/var/mysql/log/error.logbasedir=/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.piddrwxr-x---. 2 mysql mysql 4096 10月 27 03:45 mysqldrwxr-x---. 2 mysql mysql 8192 10月 27 03:45 performance_schemadrwxr-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/mysqldatadir=/mysql_data
创建软连接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
启动mysqld
/etc/init.d/mysqld startStarting 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 password2019-10-26T19:45:57.455760Z 1 [Note] A temporary password is generated for root@localhost: <3FQ)ixj0gh<
初始密码是
<3FQ)ixj0gh<
使用初始密码并登录,修改
# mysql -uroot -pEnter 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
,表示登录的用户名%
,匹配任意的ip地址password
:匹配root的密码flush
即可生效3.重启mysql
service mysql restart
4.本地测试:
mysql -h 服务器ip地址 -P 3306 -u root -p
使用客户端连接
下载MySQL Workbench并安装,测试链接数据库
安装
mycli
并测试链接pip install mycli $ mycli --helpUsage: 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# 找到并将它的值设置为Truemulti_line = True