linux 安装 mysql5.7.24
一、卸载
mysql 安装有三种方式,包括二进制包安装(Using Generic Binaries)、RPM 包安装、源码安装。一般是前两种比较多
卸载方法参考Linux->卸载 Mysql 方法总结,记得卸载干净
二、安装
建议路径设置按照写的来
将下载的压缩包复制到 linux 服务器/usr/local/路径下(下载地址https://dev.mysql.com/downloads/mysql/,进去下载默认是最新的,找到Looking for previous GA versions?,点击就可以找到以前的版本,Linux-Generic 是通用版的意思)
至于将压缩包放到 linux 上去,我是用 WinSCP 软件
——————————————————————————————————————————————
开始安装
——————————————————————————————————————————————
1、进入压缩包存放目录
[root@localhost ~]# cd /usr/local
2、解压压缩包
[root@localhost local]# tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
3、修改文件夹名字
将解压后的文件夹修改名字,文件夹名字改为 mysql
[root@localhost local]mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
4、检查并创建用户和用户组
[root@localhost local]# cat /etc/group | grep mysql
[root@localhost local]# cat /etc/passwd |grep mysql
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -r -g mysql mysql
5、创建 data 文件夹
某个版本之后就没有 data 文件夹了
[root@localhost local]mkdir /usr/local/mysql/data
6、授权目录和用户
(****重要****)忘记授权会出问题,em…,各种各样的问题
[root@localhost /]# cd /usr/local/
[root@localhost local]# chown -R mysql:mysql mysql/
[root@localhost local]# chmod -R 755 mysql/
7、安装并初始化*****重要*****
执行下面之前去/etc/目录下查看是否有 my.cnf 配置文件,如果有,删除或者修改名字备份起来!不然会出现各种 PID 或者 SOCK 有关的问题
某个版本之后这个步骤是下面这样,以前是 mysql_install_db,datadir 就是安装路径,basedir 就是根目录
[root@localhost local]# /usr/local/mysql/bin/mysqld –initialize –user=mysql –datadir=/usr/local/mysql/data –basedir=/usr/local/mysql
执行完上面之后,最后一行会有默认生成的密码,记下来
8、复制启动脚本到资源目录
[root@localhost local]# cd mysql
[root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
提示是否覆盖的话,可能之前装过没删除,输入 y 覆盖
9、增加 mysqld 服务控制脚本执行权限
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
10、将 mysqld 服务加入到系统服务
[root@localhost mysql]# chkconfig –add mysqld
11、检查 mysqld 服务是否已经生效
[root@localhost mysql]# chkconfig –list mysqld
执行完类似下面
12、启动 mysql
[root@localhost mysql]# service mysqld start
显示 SUCCESS 的话,到这里就已经启动成功了
12-2、启动 mysql 失败
提示找不到 mysql 命令的话
[root@localhost mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin
13、登录 mysql
失败的话看下面
[root@localhost mysql]# mysql -uroot -p
13-2、登录 mysql 失败
失败信息:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
[root@localhost mysql]# ln -s /var/lib/mysqld/mysql.sock /tmp/mysql.sock
然后返回 13 步重新执行
14、(在 mysql 命令行模式下)修改密码
下面最后面的 root 就是密码,修改完之后退出重新登录一次试试,有些在修改密码的时候执行下面的会报错,可以参考https://blog.csdn.net/q258523454/article/details/84555847,或者百度一下,很容易解决
mysql> flush privileges;
mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘root’;
mysql> flush privileges;
mysql> quit
[root@localhost mysql]# mysql -uroot -p
15、配置 3306 端口
开启防火墙(如果以前已经安装过 mysql 的,这个一般都已经设置好了,我的是新建的虚拟机,所以没有设置)
配置方法:打开/etc/sysconfig/iptables 文件,找到 22 端口(这个是默认配置好的),复制多一行在下面,把 22 改成 3306 就行,记住,不要复制到最后一行,有些竟然没有 iptables 的文件?这是可以生成的,百度一下就行,有些防火墙文件不是这个,可能要先取消或者设置,之前百度过,忘了
当然下面这个步骤也可以用 vim 命令进行编辑
修改完保存之后执行命令行重启防火墙
service iptables restart
有些 Linux 版本的重启如下
systemctl restart iptables.service
16、测试连接
本地使用 Navicat 连接测试,填写完点击连接测试
显示错误信息不允许连接 1130 – Host ‘192.168.114.1’ is not allowed to connect to this MySQL server
解决方法:(如果还没登录 mysql,记得登录先)
mysql> flush privileges;
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@’%’ IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;
mysql> flush privileges;
执行完再次连接测试
还是报错 1045 – Access denied for user ‘root’@’192.168.114.1’ (using password:YES),不过这次结果是密码错误,原因是因为未授权,第一次启动是这样的,解决如下:
mysql> grant all privileges on *.* to ‘root’@’%’ identified by ‘root’;
mysql> flush privileges;
再去连接测试就行了,到这里就已经安装完毕,可以使用了
——————————————————————————————————————————————
好像并没有涉及到 my.cnf 的配置文件?某个版本之后可以不需要配置文件,当然也可以自己加上,下面的就是加配置文件 my.cnf 的步骤
——————————————————————————————————————————————
17、关闭 mysql
复制之前先把 mysql 关闭,emm………..不然会报错
如果还是 mysql 命令行模式的,先 quit 退出,然后执行下面
[root@localhost mysql]# service mysqld stop
18、新建配置文件
复制 my.cnf 配置文件到/etc/目录下,没有这个文件的,自己新建,内容如下
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html [mysqld] # #skip-grant-tables # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. innodb_buffer_pool_size = 4G # # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/usr/local/mysql/data socket=/var/lib/mysqld/mysql.sock character-set-server=utf8mb4 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid server-id=1 log-bin=mysql-bin log-slave-updates=1 default-storage-engine=INNODB innodb_large_prefix=on max_connections = 2000 max_connect_errors=2000 #skip-grant-tables
19、授权配置文件
注意权限不要设置成 777,777 是最大的权限,权限过大 mysql 会认为不安全,会自动忽略这个文件,相当于没有起作用
[root@localhost mysql]# chmod 644 /etc/my.cnf
20、新建路径
在步骤 18 里面配置了日志文件、pid 文件、sock 文件的路径,所以要去自己手动创建这些路径,文件不用创建,会自动生成
PID 路径:/var/run/mysqld/
LOG 路径:/var/log/
SOCK 路径:/var/lib/mysqld/
21、授权 *****重要***** *****重要***** *****重要*****
对这些路径授权,忘记的话,em…..各种各样的问题(如果遇到 sock,pid,log 的报错,基本就是这步授权的问题…..)
[root@localhost var]# chown -R mysql /var/lib/mysqld
[root@localhost var]# chgrp -R mysql /var/lib/mysqld
[root@localhost var]# chown -R mysql /var/run/mysqld
[root@localhost var]# chgrp -R mysql /var/run/mysqld
[root@localhost var]# chown -R mysql /var/log
[root@localhost var]# chgrp -R mysql /var/log
22、启动 mysql
[root@localhost var]# service mysqld start
23、查看进程配置生效
[root@localhost var]# ps -ef | grep mysql
24、应该没了
pid 文件存放的好像是进程的 pid 值
sock 好像是使用 localhost 连接的时候会用到
应该没了
原文始发于:linux 安装 mysql5.7.24
相关文章
- ThinkPad x13 Gen1傲腾H10重装系统的麻烦(0)
- Win10系统电脑进入安全模式的四种方法,让你轻松应对各种问题(0)
- 使用Jetson_benchmark进行性能测试(0)
- 记录问题解决的连接(0)
- win10远程桌面连接ubuntu20(RDP)(0)