代码改变世界

记一次mysql启动不了的问题

2015-10-16 12:16  youxin  阅读(1161)  评论(0编辑  收藏  举报

在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"