linux下 安装mysql 问题 10

mysql-5.5.45-linux2.6-i686.tar.gz170MB下载后解压按照INSTALL-BIN....txt提示安装跟老师视频教程里有好多不一样。。最坑... mysql-5.5.45-linux2.6-i686.tar.gz 170MB 下载后 解压
按照 INSTALL-BIN....txt 提示安装
跟老师 视频教程里有好多不一样。。最坑的是
没有 /var/log/mysqld.log 根本就没有这个文件 老师教程里面 还要去查 log 那里出错了我的 怎么就没有 mysql 的log 文件

运行时也不对
[root@localhost mysql5.5]# ./bin/mysqld_safe --user=mysql &
[3] 1187
[2] Done ./bin/mysqld_safe --user=mysql //人家后面这里还有好多东西显示 比如 /var/lib/mysql/mysql.sock 我的这个 sock 文件都不知道在那里找。

以至于 运行不了 mysql 连接
[root@localhost mysql5.5]# ./bin/mysql
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

那2个位置 都没有找到 sock 文件。。
展开
 我来答
junshi66
2018-01-16 · 超过14用户采纳过TA的回答
知道答主
回答量:57
采纳率:100%
帮助的人:19.3万
展开全部

因为mysql程序在启动的时候  非常依赖my.cnf里面的配置,而my.cnf文件中的配置,在执行mysql初始化的时候就可以手动指定

如果mysql不是使用yum安装,而是将mysql安装到自定义的目录下时,在启动mysql、连接mysql的时候 都要指定my.cnf文件。或者 将my.cnf文件放到/etc下(这是因为mysql寻找my.cnf文件时首先会从/etc/my.cnf开始,然后/etc/mysql/my.cnf--》/usr/local/mysql/etc/my.cnf--》~/.my.cnf---》最后是自定义路径

下面是我自己在linux上安装了一遍的过程,你可以参考一下。

软件包

[root@hilodbtool soft]# ls mysql-5.5.45-linux2.6-i686.tar.gz 
mysql-5.5.45-linux2.6-i686.tar.gz

解压&&修改属组

tar -zxf mysql-5.5.45-linux2.6-i686.tar.gz 

cd mysql-5.5.45-linux2.6-i686
chown -R mysql.mysql ./*

[root@hilodbtool mysql-5.5.45-linux2.6-i686]# ls
bin  COPYING  data  docs  include  INSTALL-BINARY  lib  man  mysql-test  README  scripts  share  sql-bench  support-files

关于手动创建my.cnf

因为mysql程序在启动的时候十分依赖my.cnf文件,目前我的本机上已经安装了一个mysql,ect/my.cnf已经存在,所以手动创建一个my.cnf作为新建mysql的cnf文件

mkdir -p /hilodb/soft/mysql
mkdir -p /var/run/mysqld
chown -R mysql.mysql /hilodb/soft/mysql
chown -R mysql.mysql /var/run/mysqld

cat >/tmp/my.cnf <<EOF
[mysqld]
basedir=/hilodb/soft/mysql-5.5.45-linux2.6-i686
datadir=/hilodb/soft/mysql
socket=/hilodb/soft/mysql/mysql.sock
user=mysql
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/hilodb/soft/mysql/mysqld.pid
socket=/hilodb/soft/mysql/mysql.sock

[mysql]
socket=/hilodb/soft/mysql/mysql.sock

[client]
port= 3306
socket= /hilodb/soft/mysql/mysql.sock
EOF

初始化数据库

cd mysql-5.5.45-linux2.6-i686
scripts/mysql_install_db --user=mysql --defaults-file=/tmp/my.cnf

centos6.8 64bit环境下启动的时候报

[root@hilodbtool bin]# ./mysqld_safe --help
./mysqld_safe: ./my_print_defaults: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
./mysqld_safe: ./my_print_defaults: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

处理上面的报错
yum install glibc.i686
yum install libgcc.i686
yum install libaio*.i686*
yum install ncurses-*.i686*

启动数据库

cd /hilodb/soft/mysql-5.5.45-linux2.6-i686/bin
./mysqld_safe --defaults-file=/tmp/my.cnf --ledir=/hilodb/soft/mysql-5.5.45-linux2.6-i686/bin/ &

进入数据库

cd /hilodb/soft/mysql-5.5.45-linux2.6-i686/bin
./mysql --defaults-file=/tmp/my.cnf

修改root密码

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('oracle');
flush privileges;

***************登录报错 ###也就是处理socket的问题 ***************

[root@hilodbtool bin]# mysql -uroot -poracle 

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
登录报错 

两种解决方法
第一种
ln -s /hilodb/soft/mysql/mysql.sock /tmp/mysql.sock  

第二种
因为mysql程序搜索my.cnf的顺序

/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~/.my.cnf
其他自定义路径下的my.cnf,例如:/data/mysql/yejr_3306/my.cnf

所以替换/etc/my.cnf 
cp /tmp/my.cnf /etc/
cp: overwrite `/etc/my.cnf'? y
rm -rf /tmp/mysql.sock

再次登录成功
mysql -uroot -poracle
mysql>

修改环境变量


将一下内容 添加到 /etc/profie 最后
export PATH=/hilodb/soft/mysql-5.5.45-linux2.6-i686/bin:$PATH

然后在终端执行 source /etc/profile 使环境变量生效
which mysql
[root@hilodbtool ~]# which mysql
/hilodb/soft/mysql-5.5.45-linux2.6-i686/bin/mysql

登录测试

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式