linux下 安装mysql 问题
发布网友
发布时间:2022-04-23 01:50
我来回答
共1个回答
热心网友
时间:2022-04-07 20:38
因为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 bit环境下启动的时候报
[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 lio*.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
登录测试