linux下安装mysql

1、下载mysql安装包:

    下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads

    下载版本:我这里选择的5.6.33,通用版,linux下64位

    也可以直接复制64位的下载地址,通过命令

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz --no-check-certificate

tar -xvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz

2、卸载老版本MySQL

查找并删除mysql有关的文件

find / -name mysql
rm -rf 上边查找到的路径,多个路径用空格隔开
#或者下边一条命令即可
find / -name mysql|xargs rm -rf

3、在安装包存放目录下执行命令解压文件:

tar -xvf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz

4、重命名解压后的文件

mv mysql-5.6.31-linux-glibc2.5-x86_64/ mysql

5、添加mysql用户组和mysql用户

先检查是否有mysql用户组和mysql用户

groups mysql

 

若无,则添加;

groupadd mysql
useradd -r -g mysql mysql

若有,则跳过;


6、进入mysql目录更改权限

cd mysql/
chown -R mysql:mysql ./

7、执行安装脚本

./scripts/mysql_install_db --user=mysql

安装完之后修改当前目录拥有者为root用户,修改data目录拥有者为mysql

chown -R root:root ./
chown -R mysql:mysql data

Paste_Image.png

8、更改mysql密码

上一步安装脚本执行输出的日志中告诉我们如何更改密码了


但是如果直接执行这两条命令就会报错


因为这时还没有启动mysql,这算是一个坑。启动方法如下:

./support-files/mysql.server start

如果MySQL启动报错,则可能是已经存在MySQL进程,杀掉即可

ps aux|grep mysql
kill -9 上边的进程号
#或者下边一条命令即可杀掉所有MySQL进程
ps aux|grep mysql|awk '{print $2}'|xargs kill -9

杀掉后再启动即可。
或者是有其他的mysql文件干扰了mysql的启动,所以在安装之前要删除其他的mysql目录,如果一直启动不了,那就删除掉所有的mysql目录,重新安装

MySQL启动之后再执行如下命令更改密码:

./bin/mysqladmin -u root -h localhost.localdomain password '123456'

密码更改后即可登录MySQL

./bin/mysql -h127.0.0.1 -uroot -p123456

 
9、修改配置
但是如果./bin/mysql -uroot -p123456登陆,系统会报错:Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";
具体可以参考帖子:https://blog.csdn.net/hjf161105/article/details/78850658
验证办法:
./bin/mysql -uroot -p -S /var/lib/mysql/mysqld.sock

如果执行上述命令可以连接mysql,则使用下面解决办法
解决办法:
ln -s /var/lib/mysql/mysqld.sock /tmp/mysql.sock

ls /tmp/

同时,将etc/my.cnf文件的bind-address = 127.0.0.1  更改为 bind-address = 0.0.0.0,如果配置文件中没有这个配置,则手动添加上
 

这一步可有可无:

登录之后将其他用户的密码也可改为root

update mysql.user set password=password('root') where user='root';
flush privileges;

 
10、关闭防火墙
service iptables stop
11、增加远程登录权限

上一步即可本地登录,但远程登录会报错


为解决这一问题,需要本地登陆MySQL后执行如下命令
grant all privileges on *.* to root@'%' identified by '123456';
flush privileges;

执行之后即可远程登录

转发自链接: https://blog.csdn.net/wwd0501/article/details/71171614

原文地址:https://www.cnblogs.com/jessica-test/p/9047431.html