自己安装过程总结 可能与其他人情况不一致 欢迎补充
准备:检查mysql用户组和用户是否存在
,如果没有,则创建
[root@localhost /] cat /etc/group | grep mysql
[root@localhost /] cat /etc/passwd |grep mysql
[root@localhost /] groupadd mysql
[root@localhost /] useradd -r -g mysql mysql
1 首先去oracle下载一个linux版本的mysql 官网下载很慢(可以把他的链接拼接一下放到迅雷去下载 10M/s还是很快的
)
我这边是linux mysql8版本的64位
的(建议不要下高版本 因为有很多坑跟老版本不一样)
https://dev.mysql.com/downloads/mysql/
下载完之后放入/usr/local/
目录下 这边下载一个FTP传输工具更方便 然后把下载好的文件上传
(1)如果你是tar.gz的后缀 进行解压
tar xzvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.gz
(2)如果你是xz文件
首先打包成tar文件
xz -d demo.tar.xz
紧接着用
tar -xvf demo.tar
进行解压。
2 解压会生成一个文件夹 改名为 mysql
3 在/usr/local/mysql目录下创建data目录
[root@localhost /] mkdir /usr/local/mysql/data
4 更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
[root@localhost /] chown -R mysql:mysql /usr/local/mysql
[root@localhost /] chmod -R 755 /usr/local/mysql
5 编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
[root@localhost /] cd /usr/local/mysql/bin
[root@localhost bin] ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。
6 启动mysql服务器
[root@localhost /] /usr/local/mysql/support-files/mysql.server start
网上解决:
这边可能会报错
Starting MySQL... ERROR! The server quit without updating PID file
这边网上有说杀进程
查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令
#查询服务
ps -ef|grep mysql
ps -ef|grep mysqld
#结束进程
kill -9 PID
#启动服务
/usr/local/mysql/support-files/mysql.server start
[root@localhost /]cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
7 添加软连接,并重启mysql服务
[root@localhost /] ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost /] ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost /] service mysql restart
8 启动成功后,连接数据库 并修改root的密码 这是新版本的
[root@localhost /] mysql -u root -p
Enter password:
mysql>alter user 'root'@'localhost' identified by 'yourpass';
老版本的修改密码
mysql>set password for root@localhost = password('yourpass');
9 开放远程连接(网上方式)
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
但是用远程的客户端访问连接不上
解决方式:
1.因为我是买的阿里云的服务器 首先先去阿里云管理中心处添加一个3306端口的tcp
点击云服务器ESC->网络和安全->安全组;进入点击最后的 配置规则
发现只默认开放了三个规则:
选择22端口的克隆:
选mysql默认是3306的端口号 确定
1.不管防火墙关没关,都是用systemctl stop firewalld
关闭防火墙。
2.然后使用yum install iptables-services
安装或者更新服务
3.然后使用systemctl enable iptables
启动iptables
4.最后使用systemctl start iptables
打开iptables
5.输入命令vim /etc/sysconfig/iptables
6.既可以修改iptables文件
配置防火墙,开启3306端口,在此文件上添加一个如下命令
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
查看防火墙状态 看看有没有3306
iptables -L -n -v
开启3306
iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
//查看host的状态
iptables -nL --line-number
如果此时都配置好了 本地客户端访问 linux的mysql
出现
client does not support authentication protocol requested by server;consider upgrading mysql client
解决:在root下
命令窗口:登录mysql:
mysql -u root -p
登录后执行:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的root账号密码';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的root账号密码';
SELECT plugin FROM mysql.user WHERE User = 'root';
不出意外 应该是可以了
补充几个命令
:
mysql退出三种方法:
mysql > exit;
mysql > quit;
mysql > \q;
查看mysql的文件都处在哪些文件夹下
find / -name mysql
1、检查mysql进程是否启动
ps -ef|grep -i mysql
2、查看端口是否监听
netstat -ntlp
//重新启动mysql
service mysqld restart
参考网站:
https://www.jianshu.com/p/276d59cbc529
https://www.jb51.net/article/160736.htm
https://blog.csdn.net/L15207491048/article/details/85279866
---------------此文章只是自己安装做的总结 有错的地方还希望各位大佬指正 方便新人更快的学习