Python Flask使用SQLAlchemy操作数据库

上篇博文降到一个Flask项目的目录结构,这篇文章将延续上面的结构继续记录。SQLAlchemy是一个Python操作数据库的库,使用它能够更方便快捷地在Pyhton下对数据库数据进行操作。由于使用的是自己编译安装的MariaDB数据库,所以遇到了一些问题,纯属备忘作用~~~ 继续阅读Python Flask使用SQLAlchemy操作数据库

Azure云服务器上配置MariaDB主从复制

配置MySQL数据库主从复制的目的就是为了数据能够更安全、性能更好、可以实现故障快速切换等等

下面这里的两台双核4GB内存的Ubuntu 14.04+MariaDB-10.0.13的主从复制。先来看看我们编译安装的MariaDB数据库的my.cnf配置文件在哪里:

show mariadb cnf location

上面结果的意思就是这个MySQL服务器首先会在目录/etc找my.cnf,其次会去/etc/mysql/目录找,以此类推…鉴于我编译的时候指定了my.cnf的配置文件在:/app/mysql/etc目录下面。所有我们先将配置文件链接至目录/etc下面:

ln -s /app/mysql/etc/my.cnf /etc/my.cnf

主MariaDB的配置如下:

mariadb master conf

注释默认log-bin的二进制日志并配置新的二进制日志文件路径,新建二进制日志存放目录:

mkdir /app/mysql/logs && chown mysql.mysql -R /app/mysql/logs

新建MariaDB有复制权限的数据库用户:

GRANT REPLICATION SLAVE ON *.* TO ‘backup’@’42.159.228.231‘ IDENTIFIED BY ‘mariaDBbak.’;
create mariadb user

到此,主MariaDB的配置就完成了,重启MySQL服务器即可。至于查看master数据库服务器状态之类的下文再描述。

从MariaDB服务器的配置:

slave mariadb conf

注意的是server-id一定不是1、必须是大于1的其他数、这里就设12.read-only = ON 意思是:开启中继日志,relay_log指的是日志路径;

上面配置文件除了注释过#log-bin=mysql-bin外,其他都是默认的。所以,配置很简单吧。下面就来验证下。

MariaDB master server:

show master status

启动MariaDB从服务器:

change to mariadb master server

启动Slave server:

start slave;
show slave status;
show slave status

在主服务器上创建数据库验证是否同步到从服务器上:

create database and table for mastershow slave sync successful

到此,Azure云上的MariaDB主从复制就配置完成了。好久都没有发布多图片的博文了哈。

Windows Azure云编译安装MariaDB

试用1元Windows Azure,带宽都是杠杠的。下面演示下Windows Azure下编译安装LNMP环境,系统环境是Ubuntu 14.04 TLS版

软件版本:

数据库:mariadb-10.0.13 Stable
PHP:php-5.5.15 Stable
Nginx:nginx/1.4.6 (Ubuntu)(这里Nginx采用Ubuntu的apt安装方式)

1.新建MySQL用户:

考虑到系统安装,新建的用户不能登录(nologin),编辑 vi /etc/shells 添加 “/usr/sbin/nologin”使系统支持创建nologin用户

useradd -m /app/mysql -s /usr/sbin/nologin -u 555 mysql

2.安装编译环境和安装MariaDB已经PHP依赖包:

apt-get install build-essential
apt-get install libncurses5-dev cmake bison libxml2 libxml2-dev libxslt1-dev libcurl4-openssl-dev libbz2-dev \
libpcre3 libpcre3-dev unzip openssl libssl-dev libpng12-dev libfreetype6-dev libjpeg-dev libmcrypt-dev \
libldap2-dev libsasl2-dev libboost-dev

3.下载并编译安装MariaDB、PHP

wget http://cn2.php.net/get/php-5.5.15.tar.bz2/from/this/mirror

wget http://mirrors.neusoft.edu.cn/mariadb/mariadb-10.0.13/source/mariadb-10.0.13.tar.gz

1).安装目录分别为:/app/mysql 和 /app/php5

2).cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql/ -DMYSQL_DATADIR=/app/mysql/data/ \
-DSYSCONFDIR=/app/mysql/etc/ -DMYSQL_UNIX_ADDR=/app/mysql/tmp/mysqld.sock -DMYSQL_TCP_PORT=3336 \
-DWITH_SSL=system -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_ZLIB=system -DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql
3)../configure --prefix=/app/php5 --with-config-file-path=/app/php5/etc/ --with-mysql=mysqlnd \
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/app/mysql/tmp/mysqld.sock --with-freetype-dir \
--with-jpeg-dir --with-png-dir --with-zlib --enable-xml --disable-rpath --enable-bcmath --enable-shmop \
--enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt \
--with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap \
--with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --enable-fpm --with-fpm-user=www-data \
--with-fpm-group=www-data --enable-opcache

Ubuntu14.04 编译安装新版本的PHP5.5可能会出现如下错误:

/usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_strdup@@OPENLDAP_2.4_2'
//usr/lib/x86_64-linux-gnu/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

遇到这种类似的情况,说明「./configure 」沒抓好一些环境变数值。解决方法,来自老外的一篇文章:

在PHP源码目录下 vi Makefile 找到 EXTRA_LIBS 行,在行末添加 ‘ -llber ‘ 保存退出再次make即可。

到此 Ubuntu编译安装MariaDB就完成了,关于Nginx连接PHP这里就不多说了,下面是此次编译的结果:http://azure0.iloxp.com/tz.php 这只是测试用的,截图留着哈:

make install php5_5 for ubuntu 14_04

不得不再说下,在编译安装PHP5.4以后版本的时候最好使用自带的Opcache缓存功能,因为这个自带的缓存真的很不错,Hit很高,性能也很好。赞一个:

enabled php 5_5 opcache

各种云平台就这么频繁地进入我们的世界哈。

本站运行在腾讯云上面

这个季节雨真多,所以,云来了,腾讯的那个。刚发现就被坑,刚买完就坑到它的无底洞去了。不过,说回来,腾讯云目前的价格相对国内各个云厂商还算比较便宜了。腾讯云目前活动连连啊。大伙都看出来了没。这是很明显就是更阿里抢用户的招数。 继续阅读本站运行在腾讯云上面

关于MySQL通过localhost无法连接127.0.0.1可以连接的问题

关于MySQL通过localhost无法连接127.0.0.1可以连接的问题>>>在CentOS6.3 X64上新编译安装的MariaDB数据库,编译安装需要相当长的一段时间,如果你的机器不是很好的话。安装后使用探针进行PHPINFO测试的时候。发现默认的localhost不能连接MariaDB数据库,但是通过127.0.0.1又可以连接。表示很郁闷。最初想到的是:是不是linux服务器上的hosts文件问题。于是就 echo “127.0.0.1 localhost”>>/etc/hosts && sync

结果还是一样,localhost无法连接127.0.0.1可以连接。 继续阅读关于MySQL通过localhost无法连接127.0.0.1可以连接的问题

CentOS6.4下编译安装MariaDB数据库

MariaDB越来越多用户了,也越来越流行。和MySQL相比,估计有多了很多新功能。下面就介绍下Linux下如何编译安装MariaDB数据库。

目前官方最新稳定版是 MariaDB-5.5.35 下载地址:https://downloads.mariadb.org/mariadb/5.5.35/

在编译之前,首先得安装编译工具和其他一些依赖包:

yum groupinstall -y “Developmen Tools”

yum install -y cmake openssl-devel zlib-devel

cd /webapp

wget https://downloads.mariadb.org/mariadb/5.5.35/

groupadd mysql
useradd -g mysql mysql -s /sbin/nologin
mkdir /webapp/mysql
mkdir /usr/local/mysql
chown mysql:mysql /webapp/mysql
chown mysql:mysql /usr/local/mysql
tar -zxvf  mariadb-5.5.35.tar.gz
cd /webapp/mariadb-5.5.25
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/webapp/mysql -DSYSCONFDIR=/etc -DWITH_SSL=system -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_ZLIB=system -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql

配置完成后:installed mariadb
make && make install

其实和编译安装类似,就是选项变为大写的而已。例如:(-DCMAKE_INSTALL_PREFIX=/usr/local/mysql)对应mysql的(–prefix=/usr/local/mysql),其他基本无异。

配置完成后,就执行make进行编译。编译需要好一段时间。然后进行安装 make install 。

初始化还有一些简单配置:

cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
cp -p /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig –level mysqld 2345 on
chkconfig –add mysqld
echo “datadir = /data/mysql” >> /etc/my.cnf
echo “basedir = /usr/local/mysql” >> /etc/rc.d/init.d/mysqld
echo “datadir = /data/mysql” >> /etc/rc.d/init.d/mysqld
./scripts/mysql_install_db –user=mysql –datadir=/webapp/mysql &
service mysqld start

进入数据库:

into mysql

到此,MariaDB可以正常使用了。

源码安装Nginx搭建LNMP环境

貌似这是升级到wordpress3.8的第一篇文章哈。如题,不过,还是在VMware 里面实现的。这里并不是所有组件都是源码安装。但其中 M 并不是MySQL数据库。而是MariaDB。其实一样。所以这里就变成了(Linux+Nginx+MariaDB+PHP)环境。(此举不解释,都是SEO惹的祸)。进入主题呗:

网络环境自搭,配置 MariaDB yum源不多说,见图:

mariadb yum source

A.首先,使用YUM安装开发环境及一些必须组件:

yum install wget gcc gcc-c++ automake autoconf libtool make unzip php php-fpm php-mysql MariaDB-server openssl openssl-devel -y

B.下载Nginx源码,及安装Nginx需要的源码并安装:

cd /usr/local/src
wget http://nginx.org/download/nginx-1.4.4.tar.gz
wget http://softlayer-ams.dl.sourceforge.net/project/pcre/pcre/8.33/pcre-8.33.zip
wget http://zlib.net/zlib-1.2.8.tar.gz

cd pcre-8.33
./configure
make;make install

cd ../zlib-1.2.8
./configure
make;make install

C.安装Nginx及简单配置Your Nginx Server:

创建Nginx Server以www用户运行的用户:

groupadd -r www;useradd -r -g www -s /bin/nologin -M www

cd ../nginx-1.4.4
./configure –user=www –group=www –with-http_ssl_module –with-http_flv_module –with-http_stub_status_module –with-http_gzip_static_module –with-
pcre=/usr/local/src/pcre-8.33 –with-zlib=/usr/local/src/zlib-1.2.8

Note:上面红色字体是指组件源码路径,及源码目录。

成功安装后情况:

nginx configuration summary

show nginx conf and start it

配置Nginx 虚拟主机:

cat nginx conf

cat vhost conf

收尾了吧~~~~ 此处将

默认配置 fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
修改为 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

start nginx mysql server

phpinfo

写得有点点累了,就都上图了,同事也是为了又需要的淫不要就这样复制粘贴,可以让自己也过一篇。So…….

吃饭,睡觉,学习,工作,是你每天最不能忘记的事情。Come On  !!!

CentOS6.4安装MariaDB数据库

MySQL该换了。替换品话说来自同个创造者的MariaDB。今晚没胃口,不想吃饭,来折腾下呗。VMware下的CentOS6.4;采用官方提供的YUM源。博主同学这里网速不怎么好哈,好吧,即使不好,该继续就继续。优先说明下,由于这两个数据库的创造者是同一个人,所以。在同一个系统中,不作任何处理,MySQL和MariaDB无法兼容,这里采用一山不容二虎的做法,首先将MySQL卸载掉,否则无法安装会提示:

Error: mysql conflicts with MariaDB-server-5.5.33a-1.x86_64

1.配置MariaDB官方提供的YUM源:

[root@bogon Sources]# pwd
/mnt/Sources
[root@bogon Sources]# uname -a
Linux bogon 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[root@bogon Sources]# grep -v “^#” /etc/yum.repos.d/CentOS-Media.repo

[Media]
name=Local Sources
baseurl=file:///media/cdrom/
file:///media/cdrom1/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

2.执行yum安装指令:

[root@bogon Sources]# yum install MariaDB-server MariaDB-client

0131106203227 131106203458 0131106233119