标签归档:MySQL

Ubuntu14.04下搭建LANMP环境(Apache+Nginx+MySQL+PHP)

每回安装环境都要去百度几文章,今天索性自己写一篇,以后省去百度的麻烦了,本文介绍的是在Ubuntu14.04下搭建LANMP环境(Apache+Nginx+MySQL+PHP),如果你只想安装lamp或者lnmp都通用,直接拿去。
首先分两步走:
每一、先更新系统然后安装必要的依赖(这一步为以后的扩展提供铺垫)
第二、安装mysql apache2 php

重启apache2

ubuntu下apache2虚拟主机配置

文件修改为以下内容

重启apache2测试效果

在浏览器上http://localhost/info.php

第三步、安装Nginx

配置Nginx使其支持PHP

Nginx主机配置(端口改为8080,根目录和刚才的apache2要目录一样/data/www)

重启服务,查看进程

附apache2虚拟主机配置方法:

在Apache2中,有效的站点信息都存放在/etc/apache2/sites-available/文件 里面。 我们可以添加格式如下的信息来增加一个有效的虚拟空间,将default文件复制一份改一下里面的路径就可以了,要启用配置则则将此文件做一个软链接到 /etc/apache2/sites-enabled/ 目录下
下面具个例子说明:

添加软链接到/etc/apache2/sites-enabled目录

注意:

查看fpm进程是

重启服务是

不知道为何两者名称不统一,最好用ps aux| grep fpm来查看

mysql主主复制(双主复制)

MySQL主主复制结构区别于主从复制结构。在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器互为主从,并且都能向外提供服务。
有了上一节的主从复制,那么主主复制就很容易了。

一、先修改配置文件

服务器A(192.168.1.254)配置如下

服务器B(192.168.1.252)配置

两台服务器都重启

注:二都只有server-id不同和 auto-increment- offset不同
auto-increment-offset是用来设定数据库中自动增长的起点的,回为这两能服务器都设定了一次自动增长值2,所以它们的起点必须得不同,这样才能避免两台服务器数据同步时出现主键冲突
replicate-do-db 指定同步的数据库,我们只在两台服务器间同步test数据库
另:auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2

二、同步数据

本文是用test做的实验,导出将test.sql文件从254服务器拷贝到252服务器
备份数据前先锁表,保证数据一致性 继续阅读

CentOS6.3 mysql主从复制(注:mysql是通过yum源安装的)

mysql复制的优点主要包括以下3个方面:
1.如果主服务器出现问题,可以快速切换到从服务器提供的服务
2.可以在从服务器上执行查询操作,降低主服务器的访问压力
3.可以在从服务器上执行备份,以避免备份期间影响主服务器的服务

注意:一般只有更新不频繁的数据或者对实时性要求不高的数据可以通过从服务器查询,实时性要求高的数据仍然需要从主服务器获得

主服务器配置
我的服务器采用yum安装,如果想配置文件
设置默认编码等一些初始参数(my.cnf)(若无my.cnf, 则可cp /usr/share/mysql/my-small.cnf /etc/my.cnf)

前期准备数据:
两台服务器
master:192.168.1.111(主服务器)
slave:192.168.1.112(从服务器)
网络互通(关闭防火墙,关闭selinux)具体方法请看链接

一、主从服务器分别作以下操作

1.1、版本一致
1.2、初始化表,并在后台启动mysql
1.3、修改root的密码(新安装的mysql没有密码)
二、mysql主服务器配置master(192.168.1.111)

1)修改主服务器master:

2)给从服务器设置授权用户(创建复制帐号)

建立一个帐户mysync,并且只能允许从192.168.1.112这个地址上来登陆,密码是123456。
(如果因为mysql版本新旧密码算法不同,可以设置:set password for ‘mysync’@’192.168.1.112’=old_password(‘123456’))

3)在主服务器上设置读取锁定有效,确保没有数据库操作,以便获得一个一致性的快照

4)查看主服务器上当前的二进制日志名和偏移量值

5)目前主数据库服务器已经停止了更新操作,生成主数据库的备份,备份的方式有两种:

(1)cp全部的数据
如果主数据库的服务可以停止,那么直接cp数据文件应该最快的生成快照的方法:
(2)mysqldump备份数据方法
[root@localhost ~]# /usr/bin/mysqldump -uroot -p123456 test -l -F >/tmp/test.sql

6)主数据库备份完毕后,主数据库可以恢复写操作,剩下的操作只需要在从服务器上去执行:

mysql> unlock tables;

7)把主数据库的一致性备份恢复到从数据库上,把以上的压缩包解压到相应的目录即可

三、mysql从服务器配置slave(192.168.1.112)

1)修改从服务器slave:

2)将主库上备份的数据库恢复到从库(导入之前备份数据)

-v查看导入的详细信息
-f是当中间遇到错误时,可以skip过去,继续执行下面的语句

3)重启从库MYSQL

4)登录从库的MySQL命令行,执行:

5)启动从库连接,执行:

6)查看从库状态:

如果有出现以上结果,则配置成功

centos6.3系统mysql数据库字符集设置,彻底解决乱码情况

今天在部署一个系统时,网页出现了乱码。于是各种百度(之前一直用同一种方式,但是没影响使用),
下面做个试验。
本服务器系统是centos6.3,lamp环境全部用yum安装。没有优化过任任何配置
下面看mysql默认字符集配置

接下来我们建一个数据库 继续阅读

简单记录mysql中inser into select语句测试

mysql迅速制造大批数据,复制一个表中的(部分或全部)数据到另一个表中。

用法:INSERT INTO table_name1 (field1,field2) SELECT field1,field2 FROM table_name2;

前提条件

查看一下结构,更直观 继续阅读

由导出sql语句导致错误感想

最近在维护项目过程当中根据新提的需求在某表加了几个字段,这必然要升级系统安装程序当中的sql语句,本来想是把这几个加的字段的修改语句放到sql文件当中。后来归鬼使神差的,想到把整个sql文件都更新(新导出一份sql文件)。

心里想现在这份sql文件是最全的。肯定万无一失。在这之后安装的时候就出现一个安装速度巨慢的问题。10多分才可以安成。最后经一个师兄指导。是我的sql文件有问题。之前的sql文件(旧)是用mysqldump导出的,现在的sql文件(新)是用navicat(一款mysql管理工具)导出的。这两者之间是有区别的。

mysqldump导出的文件:

navicat导出的文件:

把一个表当的所有记录做成一条sql语句来执行,后者是把每一条记录做成一条sql来执行,结果可想而知。当有一定的量的数据时效率就会非常明显。
记得以后导出sql文件一定要用mysqldump(或者专门处理sql语句的脚本)。来保证我们的程序正常运行。

这次小小而深刻的教训,让我想起来前几天看coolshell.cn上的一篇文章“「我只是认真」聊聊工匠情怀”,里面有一些话颇有感触。 继续阅读

mysql-binlog日志恢复数据库

binlog日志用于记录所有更新了数据或者已经潜在更新了数据的所有语句。语句以“事件”的形式保存,它描述数据更改。当我们因为某种原因导致数据库出现故障时,就可以利用binlog日志来挽回(前提是已经配置好了binlog),接下来我们来配置

一、开启mysql-binlog日志

在mysql配置文件my.cnf加上如下配置

重启mysql

二、备份数据库

1)先查看一下当前数据库情况

2)备份数据到/tmp/test.sql

三、这时模拟误操作(插入3条数据,删除数据库)

删除数据

此时突然数据库损坏或者人为删除

四、此时数据库已经被完全破坏

1)用已经备份的/tmp/test.sql来恢复数据

2)还有三条数据没有恢复,怎么办。只能用bin-log来恢复

3)恢复成功

【总结】:mysql备份和bin-log日志

备份数据:

查看binlog日志:

导入之前备份数据:

恢复binlog-file二进制日志文件:

从某一(367)点开始恢复:

先查好那一点(用more来查看)

然后恢复:

重置binlog日志

mysql> flush logs;#关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。

【MySQL】mysqlnd cannot connect to MySQL 4.1+ using the old insecure【解决方法】

2012-11-21 11:04
【MySQL】mysqlnd cannot connect to MySQL 4.1+ using the old insecure【解决方法】

mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD(‘your_existing_password’). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file. SQL 错误代码: “7335941”.

是采用兼容格式的密码,而 php5.3的php_mysql; php_pdo_mysql 采用的是增强的密码,所以导致两者不匹配,最方便的方式还是更新db的设置,取消 old_passwords
然后在 mysql.mysql.user,更新所有用户的密码, 如:

 

ubuntu下navicat11.0.7到期解决办法

之前一直用navicat10.x版本,每当到期,删除家目录下 .navicat/system.reg文件,就可以重新使用

到了navicat11.x的版本,这个办法已经不好使了,当你像上述操作可以看到到期推迟了一个月,可是打开库后再打开表会出现错误。表打不开了,这也是人家维护版权的一个更新吧。

ubuntu下navicat11.0.7到期解决办法,删除家目录下的

(注意:些操作会删除所有的数据库链接)

这样其实相当于重新安装了一个navicat,以前的数据库链接都不见,但是比重新安装还稍微简单一些。
虽然我这么可耻的做了。但是我还是得说一句此上做法为学习交流使用。正常使用,请购买正版

CentOS 6.3 yum安装LAMP(Apache+MySQL+PHP)

一、 安装并配置MySQL

1.1 执行yum 命令安装MySQL

1.2 把添加MySQL进开机启动项,并立即启动MySQL

1.3 设置MySQL root帐号密码

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQLSERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MySQL to secure it, we’ll need the current

password for the root user. If you’ve just installed MySQL, and

you haven’t set the root password yet, the password will be blank,

so you should just press enter here.

Enter current password for root (enter for none): <– 输入系统root密码

OK, successfully used password, moving on…

Setting the root password ensures that nobody can log into the MySQL

root user without the proper authorisation.

Set root password? [Y/n] <– ENTER

New password: <– 你的MySQL root密码

Re-enter new password: <– 你的MySQL root密码

Password updated successfully!

Reloading privilege tables..

… Success!

By default, a MySQL installation has an anonymous user, allowing anyone

to log into MySQL without having to have a user account created for

This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a

production environment.

Remove anonymous users? [Y/n] <– ENTER

… Success!

Normally, root should only be allowed to connect from ‘localhost’. This

ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] <– ENTER

… Success!

By default, MySQL comes with a database named ‘test’ that anyone can

This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] <– ENTER

– Dropping test database…

… Success!

– Removing privileges on test database…

… Success!

Reloading the privilege tables will ensure that all changes made so far

will take effect immediately.

Reload privilege tables now? [Y/n] <– ENTER

… Success!

Cleaning up…

All done! If you’ve completed all of the above steps, your MySQL

installation should now be secure.

Thanks for using MySQL!

二、 安装Apache

2.1 使用yum命令安装Apache

2.2 设置开机启动Apache

2.3 启动Apache

2.4 现在直接在浏览器键入http://localhost 或http://本机IP,应该会看到Apache的测试页面

 

三、 安装配置PHP

 

3.1 使用yum命令安装PHP

3.2 重启Apache服务器

3.3 安装相关模块使用PHP支持MySQL:为了让PHP支持MySQL,我们可以安装php-mysql软件包;也可使用以下命令搜索可用的php模块

选择需要的模块进行安装

完成后在/var/www/html 里面新建info.php文件

 

能够显示PHP信息表示正确安装PHP和apache。
配置httpd.conf文件(/etc/httpd/conf/httpd.conf)
在httpd.conf文件里面有一句

意思是包含conf.d目录下的所有文件
如果我们想来一些配置尽量去conf.d目录下:以下是目录结构:

3.4 重启Apache服务器

四、 安装配置phpMyAdmin

安装好MySQL,Apache及PHP后,为了可视化的管理MySQL数据库,我们需要安装phpMyAdmin。

4.1 下载最新版本phpMyAdmin,下载地址:http://www.phpmyadmin.net/home_page/downloads.php ,选择最新版本,如phpMyAdmin-3.5.2-all-languages.tar.bz2

4.2 解压程序包

4.3 移动目录phpMyAdmin-3.5.2-all-languages到/usr/share/phpMyAdmin文件夹(建议手工操作,复制粘贴至/usr/share/目录下,后重命名文件名为phpMyAdmin,使用下面的命令行可能导致打开http://localhost/ phpmyadmin 时,提示403错误,暂时不知怎么回事- -!)

4.4 进入phpMyAdmin目录

4.5 拷贝样本配置文件到config.inc.php文件

4.6 修改Apache配置

4.7 写入如下内容

写入并退出

4.8 重启Apache服务器

4.9 至此,打开页面http://localhost/phpmyadmin 即可轻松管理你的mySQL数据库

 

备注:

给数据库授权一个admin用户,密码mysql