Mysql

docker安装mysql

参考:https://hub.docker.com/_/mysql

官方文档是这样写的:

$ docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag

其中 some-mysql 是你想要的mysql容器名, my-secret-pw 是mysql的密码(用户名是root),tag MySQL 版本,没有的话默认是用最新的latest版本。

 

 

本地启动mysql容器可以参考:https://blog.csdn.net/weixin_44037416/article/details/117956869

博客分类: 

Amazon EC2 配置Ubuntu(HVM) + php-fpm + MySQL

博客是放在Amazon的EC2.

全程参考:http://imcn.me/html/y2012/11870.html

 

其中遇到文件权限的问题:

默认EC2的nginx和php-fpm的用户和用户组是www-data。但是我ubuntu的文件权限是quentin,所以php写文件没权限了。

所以为了使php-fpm和文件权限一致,配置如下:

修改php-fpm配置:sudo vi /etc/php5/fpm/pool.d/www.conf

user = www-data 改成 user = ubuntu

修改nginx配置:sudo vi /etc/nginx/nginx.conf 

user www-data 改成 user ubuntu

博客分类: 

Mac下MySQL 无法启动的问题

最近遇到一个低级问题,希望可以帮助跟我一样的同学:

问题描述:

本地环境是XAMPP,内置MySQL以前是好的,好久没用了,最近启动MySQL时提示如下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock'

 

当时我以为是本地MySQL出问题了。经过环境变量,权限等排查仍然找不到原因。

其中也试过了:locate mysql | grep sock

结果:/Applications/XAMPP/xamppfiles/include/mysql/psi/mysql_socket.h
也找不到mysql_socket.sock。

最终,发现其实mysql是好的,只是mysql.server没启。
执行下面命令即可:
sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start

博客分类: 

MySQL导入/备份数据库时乱码问题

前言:

MySQL的备份/恢复(导入)命令一般使用如下:

备份:

mysqldump -uUSERNAME -pPASSWORD DBNAME > FILE_BACKUP.sql

恢复(导入):

mysql -uUSERNAME -pPASSWORD DBNAME < FILE_BACKUP.sql

注:

  • USERNAME  - 数据库用户名。如:root.
  • PASSWORD - 数据库密码。如果为空空格即可,或者不写 "-p" 参数。
  • DBNAME - 数据库名。
  • FILE_BACKUP - 备份到文件的文件名。

这样就实现了备份和恢复。

 

乱码问题:

但是,如果你拿到一份别人或者从网上download下来的sql备份文件,导入之后发现有乱码,怎么办?

一般出现乱码是跟导入时的编码相关。其实很简单,导入或者备份时加一个参数(--default-character-set)就可以避免编码问题的发生。

如:

备份:

博客分类: 

如何成为“10倍效率”的开发者

如何成为“10倍效率”的开发者作为一名程序开发者,除了要求更好的代码质量以外,开发效率也是不可忽略的。从Brad Feld的一篇文章The Rise of Developeronomics中提到的“10倍效率开发者”的概念!下面文章将给出如何去提高这么诱人的开发效率的答案。 Brad Feld的一篇文章The Rise of Developeronomics中提到了“10倍效率的开发者(10x developer)”的概念(伟大的开发者的效率往往比一般的开发者高很多,而不只是一点点),Adam Loving在读了之后受到启发,并向多位大牛(Ben Sharpe、Collin Watson和Jonathan Locke)询问如何成为“10倍效率的开发者”,最后得到了以下的答案。

1、只做需要做的工作

◆  使用敏捷方法;

◆ 全心全意做UX设计;

◆ 沟通第一;

◆ 编码也许不是解决问题的办法;

◆ 过早的优化是一切罪恶的根源;

◆ 选择最简单的解决方案。

如何设置Mysql中AUTO_INCREMENT的字段为0。

问题:

 

假设有这样的一个表:

CREATE TABLE `test` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `name` varchar(60) NOT NULL DEFAULT '',

  PRIMARY KEY (`id`),

  UNIQUE KEY `name` (`name`),

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

如何这个表的AUTO_INCREMENT字段值设置为0呢?

 

尝试使用:INSERT INTO `test` (id, name) VALUES (0, 'Name 0'); 执行下来结果是id自动为1了。

所以如果需要上面的语句有效的执行,需要在执行sql语句前先执行:

SET sql_mode='NO_AUTO_VALUE_ON_ZERO';

然后再执行:

INSERT INTO `test` (id, name) VALUES (0, 'Name 0');

 

博客分类: 

UTF-8和utf-8区别

昨天使用flash时候出现配置信息XML文件读取失败的情况。

经过一位同事的帮忙,最终确定是编码格式的问题。但是我是UTF-8以及Unix下编码。后来,我查看XML文件,发现头部的encoding="utf-8",我将其改为大写UTF-8,问题竟然奇迹般解决了。

上网搜的结果基本都认为windows不区分大小写,UTF-8和utf-8没有区别。但是写成UTF-8会更标准。国际标准是UTF-8而不是utf-8。

另外,顺便提下,mysql内只能用set name=utf8;这是由于mysql解析的原因,跟上面说的不是一回事情了。

博客分类: 

sql-mode引发的问题

今天在执行一段mysq插入时,发现一直报错。

定位发现是其中有个字段为datetime,设置为空值。

但是,奇怪的是我在另一台服务器上执行时完全正确,甚至都没有Warning。

我一开始怀疑是mysql版本问题,但是我的是5.1.30,好的那台是5.1.33。版本基本一样。

我开始觉得可能是mysql的配置问题,最终,我在数据库配置里找到sql-mode,上网查询了下,果然是这个设置的问题。

5.0之后的版本,mysql默认开启了sql-mode,我的配置为:

#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

我把它改为:sql-mode=""

重启mysql,执行刚才的sql语句,发现一切正常了。

 

关于sql-mode可以访问官方网站:

博客分类: 

linux+Apache+Php+Mysql安装

做PHP三年多,一直都是apt-get install ,从未手动安装过apache,php以及mysql。最近有需要在服务器上安装LAMP。

安装包我选择的:

  • httpd-2.0.63.tar.gz
  • php-5.2.14.tar.gz
  • mysql-5.1.46-linux-i686-glibc23.tar.gz

放在/usr/local/src下面

一、安装Mysql

shell> groupadd mysql

shell> useradd -g mysql mysql

shell>cd /usr/local/src

shell>tar xvzf mysql-5.1.46-linux-i686-glibc23.tar.gz

shell>cd mysql-5.1.46-linux-i686-glibc23

shell> scripts/mysql_install_db --user=mysql

shell> chown -R root  .

博客分类: 

页面