Linux安装Mysql

1 卸载老版本 MySQL

查找并删除 mysql 有关的文件

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


2 下载mysql-linux版本,进行解压

去官网下载mysql后上传到服务器进行解压。

1
tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz


3 重命名解压后的文件

1
mv mysql-8.0.31-linux-glibc2.12-x86_64 mysql8

4 添加 mysql 用户组和 mysql 用户

1
2
groupadd mysql
useradd -r -g mysql mysql

如果已经添加过,则会提示组合用户已经存在


5 进入 mysql 目录新建data,logs目录并更改权限

mysql8版本,不需要建data目录,后续会报错。–踩坑了

1
2
3
cd mysql/
mkdir data logs
chown -R mysql:mysql ./


6 编辑my.cnf vim /etc/my.cnf

此处socket修改为/tmp/mysql.sock

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[mysqld]
server-id=1
port=3306
user=mysql
basedir=/usr/local/software/mysql/mysql8
#设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
#datadir=/usr/local/software/mysql/mysql8/data
# 修改为/tmp/mysql.sock,踩坑了
socket=/usr/local/software/mysql/mysql8/mysql.sock
pid-file=/usr/local/software/mysql/mysql8/mysql.pid
character-set-server=utf8mb4
innodb_log_file_size=1G
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
log-error=/usr/local/software/mysql/mysql8/logs/error.log


[client]
port=3306
socket=/usr/local/software/mysql/mysql8/mysql.sock

7 启动mysql,进入bin目录,安装mysql


8 解决异常

The newly created data directory /usr/local/software/mysql/mysql8/data/ by –initialize is unusable. You can remove it.

解决办法:my.cnf中,去除#datadir配置,mysql8之后自己会生成,无需指定。

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

解决方法:my.cnf中的socket路径,做一次ln映射

1
ln -s /usr/local/software/mysql/mysql8/mysql.sock /tmp/mysql.sock

9 启动mysql


10 查看初始化密码,登录修改初始化密码

由于在 my.cnf 中已经指定了 log error 的路径,因此初始化的过程中所有的输出包括密码都保存在了指定的路径和log文件中,进入logs目录查找密码。如果复制密码还显示密码错误,查看一下error.log的启动日志,可能登录使用空密码即可。

cat error.log | grep “password”


11 更新mysql路径

1
2
3
4
vim /etc/profile    //全局
export PATH=$PATH:/usr/local/software/mysql/mysql8/bin
#修改完,刷新生效
source /etc/profile


12 修改初始化密码

1
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';


13 开机自启动mysql设置

1
2
3
4
cp /usr/local/software/mysql/mysql8/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on


14 增加远程登录权限

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

为解决这一问题,需要本地登陆 MySQL 后执行如下命令

1
2
3
4
使用mysql库:use mysql
查询信息:select user,host from user
修改root用户的host字段,命令:update user set host="%" where user="root"
使本次修改立即生效,命令:flush privileges

重新测试远程连接