linux安装mysql

我用的镜像是centos7。

1.mysql的下载安装包

首先从mysql官网上https://www.mysql.com/

 点击downloads,进入后往下滑找到如图,进入,

进入后点击mysql社区版的 MySQL Community server,点击进入,第一步,选择的linux系统,我的是centos7,属于小红帽的所以我选的是red hat的。第二步,镜像是哪个版本的我的是7x86_64版的。第三步点击RPM Bundle 下载就可以了,第一个离线包很全面。

本次安装的是离线版的,也有在线安装的(未学习)。

mysql的安装

首先把包放到opt文件夹下(我是通过xftp传输的)

common   client-plugins   libs  client  (可能需要这个 包icu-data-files,如果是8.0.28往后的)  server

1.检查  /tmp临时目录权限,

  原因:由于mysql安装过程中,会通过mysql用户在  /tmp目录下新建tmo_db文件,所以需要给tmp较大的权限。执行:命令 :   

chmod -R 777  /tmp

2.检查依赖 没有就安装   

rpm -qa|grep libaio

rpm -qa|grep net-tools

在安装时要在opt文件夹下安装因为包都在opt文件夹下

3.安装(要按顺序安装  common   client-plugins   libs  client   server)

  

rpm  -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm

注意在安装  libs包时,会报错:mariadb-libs 被....取代

要执行 yum remove mysql-libs  清除之前安装的依赖

在8.0.28左右之后要安装server包时需要提前  icu-data-files的rpm包。才可以。或者在rpm 语句后面加上 --nodeps --force,安装时忽略依赖关系.

安装完后检查是否成功执行:mysql --version 或 mysqladmin --version

执行如下命令,查看是否安装成功  -i 忽略大小写

rpm -qa|grep -i mysql

rpm -qa|grep -i mysql

 

 

 

4.  服务初始化 : 为保证数据库目录与文件的所有者为mysql登录用户,如果你是root 身份运行mysql服务,需要执行下面名命令初始化

mysqld --initialize --user=mysql

​mysqld --initialize --user=mysql

--initialize 默认以“安全”模式初始化,则会为root用户生成一个密码并将该密码标记为过期,登录后你需要设置一个新密码。生成的历史密码会往日志中记录一份。

查看密码:

cat /var/log/mysqld.log

   root@localhost:后面就是初始化的密码

5.启动mysql ,查看mysql是否启动了。

systemctl status mysqld.service   (.service 加不加都可以)

没有启动的话用命令启动

systemctl start mysqld

systemctl stop mysqld 停止运行命令

执行成功后在查看一下状态

systemctl status mysqld

查看进程

ps -ef | grep -i mysql

6.查看MySQL服务是否自动启动

systemctl list-unit-files|grep mysqld.service

默认是enabled

如果不是可以运行如下命令设置自启动

systemctl enable mysqld.service

如果希望不进行自启动运行如下命令

systemctl disable mysqld.service

7.利用临时密码登录进mysql

 mysql -uroot -p 回车输入临时密码

进入后要先修改密码

命令是

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

5.7(不含5.7版本)后mysql加入了全新的密码安全机制。设置密码太简单会报错,要设置更复杂的密码才行(有的需要有的不需要)

至于为什么是root@localhost,临时密码哪里你可以找到

改完之后

quit  命令退出mysql 从新用新密码登录。

远程访问连接mysql服务器

  1. 先检查一下远端电脑能否ping IP地址,保证网路畅通

  在检查远程电脑使用telnet命令保证端口开发访问

   telnet ip地址 端口号

关于开启telent命令,打开控制面板,点击程序,点击‘启用或关闭windows功能’找到telnet客户端(telnet client)勾选并确定,安装后在用cmd终端上telnet ip:端口号。

若连接失败。那就是mysql服务器防火墙的问题。大多数都是防火墙的问题,上面的是测试环节。

两个方法

第一个关闭直接关闭防火墙,远端和mysql服务器端的。方法1

第二个开启防火墙,允许开放某个端口。 方法2

方法1

Mysql服务器

查看防火墙命令 systemctl status firewalld

关闭防火墙的命令  systemctl stop firewalld

开启防火墙的命令 systemctl start firewalld.service

重启防火墙命令  firewall-cmd --reload

自动关闭防火请 systemctl disable firewalld

自动开启防火请 systemctl enable firewalld

方法2

查看开放的端口号

firewall-cmd --list-all

设置开放的端口号

firewall-cmd --add-service=http --permanent

firewall-cmd --add-service=3306/tcp --permanent

firewall-cmd --zone=public --add-port=80/tcp --permanent

Firewall关闭常见端口命令

firewall-cmd --zone=public --remove-port=80/tcp --permanent重启防火墙

firewall-cmd --reload

在linux下修改配置

登录mysql后使用命令

Use mysql;

Select Host,User from user;

Root用户不允许远程连接;

只能通过修改root用户权限:命令

Update user set host = ‘%’ where user = ‘root’;

Update user set host = ‘192.168.1.%’ where user = ‘root’;

注意:%任意的意思,host = ‘%’表示任何客户端地址都可以访问,

host = ‘192.168.1.%’表示地址192.168.1.1~254都可以访问。

修改后要刷新一下权限:命令

Flush privileges;

注意执行mysql命令要加分号(;)英文版的;

上面完成后,这是再连接会出现新问题(这是8.0版之后才有的问题);Navicat for MySQl的(常规)选项连接中好像不会出现这个错误。可以直接连接。选SSH连接就不行。 

解决办法:linux下mysql -uroot -p登录数据 库,执行sql命令

Alter user ‘root’@’%’ IDENTIFIED WITH mysql_native_password by ‘密码’;

再次连接。

注意:

Navicat for MySQl的(常规)选项连接中好像不会出现这个错误。可以直接连接。选SSH连接就不行。

用 ‘常规’选项连接时,你连接的是远程数据库。密码也是数据库密码。

用 ‘SSH’选项连接时,你连接的是远程服务器(linux或Windows)。账号是登录账号;密码是登录账户密码。

附录:

查看数据库字符集命令

Show variables like ‘%character%’;

修改字符集(Windows版)

my.ini文件

修改字符集(linux版)

打开文件 命令:  Vim /etc/my.cnf

  添加配置项

  Character_set_server=utf8

保存退出。重启mysql服务

Systemctl restart mysqld.Service

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值