Linux给MySQL配置环境变量

前言

今天不知道为什么特别生气,早上去上班的路上开车也很路怒,我知道这样很不好,但是,只能说慢慢改吧! 在一个初次见面大佬面前放肆,被大佬教育了,还好大佬人很不错。 事情是这样的,领导布置了一个验证数据库备份的任务,因为本地环境与生产环境不一致,所以还原的时候经常报错,每次一报错就要把环境改对,再重新还原,很浪费时间,毕竟是几十G的数据库备份。

发现问题

今天想着要不直接还原到测试环境去,反正环境一致,上服务器一看磁盘空间也够了,完美,说干就干! 上服务器一看,执行

# mysql -uxxx -p

结果提示

# -bash: mysql: command not found

经验丰富的老鸟这会应该知道是没有配环境变量的问题了,毕竟已经能确定mysql就是装在这个服务器上的,执行ps命令 (但是我当时没发现,所以气得在大佬面前跳脚倒苦水,被大佬鄙视了,但是也学到了)

# ps -ef|grep mysql
# root      44783      1  0  2020 ?        00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/cico-218-4.pid
mysql     45020  44783  4  2020 ?        12-18:10:25 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/var/lib/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/var/lib/mysql/mysqld.log --open-files-limit=65535 --pid-file=/var/lib/mysql/cico-218-4.pid --socket=/var/lib/mysql/mysql.sock
root     206115 205519  0 10:09 pts/1    00:00:00 grep --color=auto mysql

可以看到basedir=/usr/local/mysql,所以,其实我们直接去这个目录下的bin目录执行mysql命令也可以,但是这样显得很不实用,所以要把环境变量给配上。 先执行一下这命令试试,可以看到提示输密码的已经出来了,说明命令没问题,接下来开始配环境变量。

# /usr/local/mysql/bin/mysql -uxxx -p
Enter password:

配置环境变量

# vim # /etc/profile

在最后一行加入export PATH=/usr/local/mysql/bin:$PATH,/usr/local/mysql/bin就是mysql的bin目录,用刚才的basedir加个/bin就可以了,配置好以后,执行命令让环境变量生效

# source /ect/profile

新的问题

直接执行命令,看是否生效

# mysql -uxxx -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

看到环境变量已经生效了

解决新的问题

这里解决问题的方法参考以下博客文章

解决MySQL sock问题

但是发现了新的问题,赶紧查下,发现是不能通过mysql .sock连接MySQL的问题 通过刚才的ps命令可以看到socket=/var/lib/mysql/mysql.sock,去my.cnf看下socket配置

# vim /ect/my.cnf

看到socket=/var/lib/mysql/mysql.sock,配置应该是没问题,但是mysql的sock文件一般不是在 /tmp/mysql.sock 就是在 /var/lib/mysql/mysql.sock 这里 所以这里用ln命令来创建一个连接

# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

或者是

# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

后面我就没有参考大神重启和赋权这个数据库的命令了,因为这是客户的测试环境,我甚至没有root用户的权限。然后我再次执行了之前的命令发现已经可以登录数据库了。

完结!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章