提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
(1)进入链接: mysql官网下载编译好的二进制安装包,在下载页面选择需要的版本(如果进入下载列表后始终只有Windows版本的安装包,可以安装XSkyWalker浏览器进行下载,XSkyWalker下载地址:https://www.jb51.net/softs/192435.html),如下图所示:
把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5)(x86, 64-bit),32位系统下载Linux- Generic (glibc 2.5) (x86, 32-bit)
我下载的是mysql-5.7.37-linux-glibc2.12-i686.tar.gz 版本,以下便已5.7.37 版本为例。
将下载的mysql安装包mysql-5.7.37-linux-glibc2.12-i686.tar.gz通过ftp工具上传到linux主机上(我这里上传到/usr/local/目录下)。进入安装包所在目录,执行命令:ttar -zxvf mysql-5.7.37-linux-glibc2.12-i686.tar.gz 解压安装包。
执行命令:
这 groupadd mysql 和 useradd -r -g mysql mysql
或者 只执行 useradd mysql ,此指令会自动添加于用户同名的组,并将此用户添加到这个组内
(1)执行命令: cd /usr/local 进入安装MySQL软件目录
2)执行命令: mv mysql-5.7.37-linux-glibc2.12-i686 mysql重命名解压后的文价夹为mysql
3)执行命令:cd mysql 进入mysql安装目录
(4)执行命令: chown -R mysql:mysql ./修改当前目录拥有者为mysql用户
(5)创建data文件夹,用于存放数据库表之类的数据
(6)初始化 -安装依赖包
执行命令: yum install libaio
进行初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
进行mysql初始化时报错:
mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
根据错误执行 :yum install libnuma.so.1
yum -y install numactl
yum install libnuma
yum install ld-linux.so.2
yum install libaio.so.1
yum install libnuma.so.1
yum install libstdc++.so.6
yum install libtinfo.so.5
yum clean all
yum makecache
(7)查看密码
cat /data/mysql/mysql.err
文件结尾能看到临时的秘密
(8)启动mysql,并更改root 密码
先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
(10)登录mysql
在执行./mysql -u root -p 时报错,则根据错误将制定的依赖下载即可如图下:
(11)修改root 账号密码
再执行下面三步操作,然后重新登录。
SET PASSWORD = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
这时候你如果使用远程连接……你会发现你无法连接。
(12)这里主要执行下面三个命令(先登录数据库)
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
如果此时还是无法访问的话:
可能是防火墙限制的端口
执行:
service iptables start/stop #命令
#执行如果报错:
Failed to start iptables.service: Unit iptables.service failed to load: No such file or directory.
在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理,
如果要添加范围例外端口 如 1000-2000
语法命令如下:启用区域端口和协议组合
firewall-cmd [–zone=] --add-port=[-]/ [–timeout=]
此举将启用端口和协议的组合。端口可以是一个单独的端口 或者是一个端口范围 - 。协议可以是 tcp 或 udp。
实际命令如下:
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效)
firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone=public --query-port=80/tcp
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
执行一下命令:
systemctl stop firewalld
systemctl mask firewalld
并且安装iptables-services:
yum install iptables-services
设置开机启动:
systemctl enable iptables
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables
保存设置:
service iptables save
OK,再试一下应该就好使了
ln -s /usr/local/mysql/bin/mysql /usr/bin