• 记一次mysql启动不了的问题


    在linux上用的是xampp,mysql启动没有报任何错误,但就是查找不到进程,于是找mysql错误日志,日志在哪?在lampp/var/mysql 以.err结尾的文件里。里面内容如下;

    /opt/lampp/sbin/mysqld: Can't create/write to file '/tmp/ibvSSzKE' (Errcode: 13 - Permission denied)
    2015-10-16 12:08:01 b720b700 InnoDB: Error: unable to create temporary file; errno: 13

    原来是/tmp目录没有写的权限,改下权限就行了。

    关于xampp在linux下配置,可以看

    Mysql 於lampp xampp LinuxUbuntu下的配置

    http://my.oschina.net/code33/blog/299242?p=1

    lampp下的mysql配置文件路径:

    /opt/lampp/etc/my.cnf

    1 配置默认字符集

    於mysqld项下添加

    character-set-server=utf8

    init_connect ='SET NAMES utf8'

    於client项下添加

    default-character-set =utf8

    酱紫就ok了,尝试着用jetbrains自带的数据连接工具insert一条中文数据尝试一下吧,看看能否正常插入中文UTF8字符数据

    2修改默认允许执行最大的sql脚本size

    为什么要设置这个项目?

    若有一个sql脚本大于了默认值就卡住无法执行下去了

    同样是my.cnf

    项:mysqld和mysqldump下

    max_allowed_packet=500M 

    设置即可

    3迁移默认数据库文件夹路径

    刚刚装好的lampp mysql其路径是在/opt下的,也就是系统文件夹下,我们需要把它迁移到指定的专用数据库文件夹

    先把默认文件夹拷贝

    1
    sudo cp -rp /opt/var/mysql /home/xx

    然后修改my.cnf中的设置项

    client项sock链接文件

    sock=/home/xx/mysql/mysql.sock

    mysqld项sock链接文件

    sock=/home/xx/mysql/mysql.sock

    添加数据文件夹变量於 plugin_dir变量下一行

    datadir=/home/xx/mysql

    完成数据库文档路径迁移;

    4 建立linux mysql 客户端链接命令配置

    1
    sudo apt-get install -y mysql-client-core-5.5

    安装好以后配置sock链接

    删除原系统mysql命令路径

    1
    sudo rm -rf /var/run/mysqld

    重建文件夹

    1
    sudo mkdir /var/run/mysqld

    重建软连接

    1
    sudo ln -s /home/xx/mysql/mysql.sock /var/run/mysqld/mysqld.sock

    然后在命令行下 直接试一试 mysql命令吧

    5 设置innodb的共享文件索引表自增空间

    若不设置,也会导致各种莫名其妙的ibdata1 的启动报错

    my.cnf设置

    innodb_data_home_dir=/home/xx/mysql

    innodb_data_file_path=ibdata1:5000M;ibdata2:5000M;ibdata3:1000M;ibdata4:1000M:autoextend:max:5000M

    实际开发中此项不需要做修改

    这里的意思是每次自增的表空间1000M ,但是最大值是5000M ,可以根据自己实际的磁盘空间来设置,最低值最好不要使用默认的10M 不然实际生产环境中使用很容易出故障

    到这里算是告一段落

    欢迎转载 并附上原创 谢谢

    6lampp的启动mysql启动项命令

    启动mysql

    找到 startMySQL() 函数

    if testrun "$XAMPP_ROOT/var/mysql/$(hostname).pid" mysqld

    将其注释

    替换成

    if testrun "/home/xx/mysql/$(hostname).pid" mysqld

    关闭mysql

    找到stopMySQL()函数

    注释if ! test -f "$XAMPP_ROOT/var/mysql/$(hostname).pid"

    替换成

    if ! test -f "/home/xx/mysql/$(hostname).pid"

    7 修改启动脚本

    1
    sudo gedit  /opt/lampp/bin/mysql.server

    找到datadir= 

    添加变量值

    datadir= /home/xx/mysql

    找到

    注释lock_file_path="$lockdir/mysql"

    替换成

    lock_file_path="/home/xx/mysql"

  • 相关阅读:
    ubuntu golang nginx
    如何写易于调试的代码
    Topic 2: golang string operation
    topic 1: golang file operation
    【转帖】ArtisticStyle----很好用的C/C++样式格式化工具
    【转帖】C++经典书籍汇总
    (转载)MonoBehaviour的事件和具体功能总结
    unity3d的延时调用函数
    unity3D 实现手机的双指触控和Input类touch详解
    Lua 关于"."与":"号的用法区别
  • 原文地址:https://www.cnblogs.com/youxin/p/4884960.html
Copyright © 2020-2023  润新知