linux下 安装mysql 问题

2020-09-26 科技 92阅读

因为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 <[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

登录测试

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com