标签: mysql

  • Mysql 逻辑备份命令 mysqldump

    备份

    备份所有数据库

    mysqldump -uroot -p --all-databases > ~/all.db

    备份指定数据库,多个库以空格间隔

    mysqldump -uroot -p test test2 > ~/test.db

    (更多…)

  • Mac 下安装和配置 mysql 记录

    安装其实很简单,就一条命令:

    $brew install mysql
    

    主要是安装好后需要注意做一些安全方面的设置,以前都没有意识去做,这里记录一下。
    安装好后主要做三件事:
    第一,要给 root 用户设置密码。

    $mysqladmin -u root password 'password'
    

    第二,默认情况下mysql可以不用密码就连接,我们要设置一些登录密码的安全访问限制,删除匿名用户访问,删除root用户通过网络访问,删除test测试数据库等。

    $mysql_secure_installation
    

    最后,更具需要配置 my.cnf 文件。

  • MySql server startup error ‘The server quit without updating PID file ‘

    有些天没有开 mysql, 期间升级了 OSX 10.9 系统。
    今天打开 mysql 爆了个 MySql server startup error ‘The server quit without updating PID file ‘ 错。
    通过以下命令修复了:

    sudo chown -R _mysql /usr/local/var/mysql
    

    reference:
    http://stackoverflow.com/questions/4963171/mysql-server-startup-error-the-server-quit-without-updating-pid-file

  • mysql sql语句别名不生效

    sql语句用到了别名,在oracle、db2,sqlservice数据库中正常,在mysql中不正常
    因为在mysql下的useOldAliasMetadataBehavior默认为false,字段别名默认不生效,配置文件里将其改为true就可以了。
    jdbc:mysql://127.0.0.1:3306/DATABASE?characterEncoding=utf-8&useOldAliasMetadataBehavior=true
    参考链接:
    http://dev.mysql.com/doc/refman/5.0/en/connector-j-reference-configuration-properties.html

  • mac os 上php连接mysql数据库不能使用使用localhost问题

    尼玛,踩到坑了,蛋疼。浪费了半个小时
    在mac上搭了php的环境后连不上数据库,数据库正常,通过命令行工具也能正常访问。
    查了下。。。才发现是localhost的写法不行:

    当把localhost换成127.0.0.1或者本机的IP时,居然正常了。以前一直认为localhost与127.0.0.1是一回事,现在事实证明它们其中还是有区别的。
    在网上搜索了一下它们的区别,有人已经说的很明白了,具体可以参看:http://blog.sina.com.cn/s/blog_40e1ba640100ivjj.html,http://www.diybl.com/course/7_databases/mysql/myxl/20090722/168062.html。它们的主要区别是localhost是通过socket方式来连接,而127.0.0.1则是走的TCP协议
    上面提到区别就是导致mac下无法连接数据库的原因。那为什么socket方式无法连接呢?由于mac os lion上已经自带了apache和php,我的环境使用就使用默认的,mysql服务是在官网下载dmg安装最近版本,php的配置文件(/ect/php.ini)中设置有三个地方(mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket)设置了mysql socket文件存放的位置,其默认值为/var/mysql/mysql.sock。查看mysql服务使用的socket文件有两种方式
    方法1:
    echo "show variables" | mysql | grep "socket"
    方法二:
    echo "status" | mysql | grep "socket"
    注意:如果mysql设置了密码,使用-u,-p来指定用户名和密码
    这里看到mysql的socket文件存放位置为/tmp/mysql.sock。
    看到这儿应该知道问题所在了吧,使用localhost连接失败的原因为在socket的方式下,php默认配置的mysql服务的socket文件不存在,所以导致连接失败,如果把连接失败的错误信息dump出来,你应该会看到错误信息中包含了“No such file or directory”。
    知道原因就容易修改了,只需要把php配置文件中mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket这三项值修改为mysql服务配置对应值即可,修改好后需要重启apache服务。当然也可以修改mysql配置文件中的socket信息,使其保持一致即可,修改好后重启mysql服务。

  • Solve Can’t connect to MySQL server Error

    启动数据库时,报了以下这个错误:
    ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
    到mysql安装目录的bin目录下执行:mysqld –install
    再通过net start mysql来启动数据库,就能正常访问了