linux 怎样登录sql,linux 安装mysql-8以及远程连接步骤(图文并茂)

一、下载安装包:

1、新建文件夹,主要是为了弄个地方放下载的安装文件:

mkdir mysql8

2、进入到创建的mysql8文件夹中,下载mysql文件:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

然后等待它漫长的下载过程吧,如果中途不动了,就终止下载,重新执行这个命令就行,最后会有多个文件,把之前下载的失败的不完整的安装包删除掉就好了 。下载完成后的查看下载结果如下

20200620144308815432.png

3、解压下载的mysql压缩包:

tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

解压后查看当前目录的文件,会看到有两个,一个是压缩的,一个是解压后的。

20200620144309117202.png

注意: 如果有报错,就按照对应的依赖包(其他报错请留言,一起解决),如:

如果报如下错误,请安装组件

[[email protected] soft]# tar-xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz

tar (child): xz: Cannot exec: No such file or directory

tar (child): Errorisnot recoverable: exiting now

tar: Child returned status2tar: Errorisnot recoverable: exiting now

[[email protected] soft]# yum install-y xz

二、安装过程

1、将解压的文件重命名mysql,并移动到/usr/local目录下

mv mysql-8.0.11-linux-glibc2.12-x86_64mysql

mv mysql/usr/local/

图示:

20200620144309398462.png

查看移动后的结果,图示:

20200620144309657261.png

2、进入到/usr/local目录下,创建用户组和用户并授权

cd /usr/local/groupadd mysql

useradd-r -g mysql mysql

cd mysql/#注意:进入mysql文件下授权所有的文件

chown-R mysql:mysql ./

图示:

20200620144309907271.png

3、到/usr/local/mysql目录下,创建data文件夹

mkdir data

图示:

20200620144310411197.png

6、初始化数据库,会生成随机密码,需要记住,一会要用

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

图示:

20200620144310794024.png

7、修改/usr/local/mysql当前目录的用户

chown -R root:root ./chown-R mysql:mysql data

图示:

20200620144311336037.png

8、复制创建的文件到etc目录并重命名(先创建、在授权、在复制、在重命名)

cd support-files/touch my-default.cnf

chmod777 ./my-default.cnf

cd ../cp support-files/my-default.cnf /etc/my.cnf

图示:

20200620144311608508.png

9、编辑配置复制过去的my.cnf文件

cd /cd etc

vim my.cnf

图示,把下边的内容复制到my.cnf文件中:

[mysqld]

character_set_server=utf8

init_connect=‘SET NAMES utf8‘# Remove leading # andset to the amount of RAM forthe most important data

# cachein MySQL. Start at 70% of total RAM for dedicated server, else 10%.

# innodb_buffer_pool_size=128M

# Remove leading # to turn on a very important data integrity option: logging

# changes to the binary log between backups.

# log_bin

# These are commonlyset, remove the # and set asrequired.

basedir= /usr/local/mysql

datadir= /usr/local/mysql/data

socket= /tmp/mysql.sock

log-error = /usr/local/mysql/data/error.log

pid-file = /usr/local/mysql/data/mysql.pid

tmpdir= /tmp

port= 7766#lower_case_table_names= 1# server_id=.....

# socket=.....

#lower_case_table_names= 2max_allowed_packet=50Mdefault-authentication-plugin =mysql_native_password

#lower_case_file_system=on

#lower_case_table_names= 2log_bin_trust_function_creators=ON

# Remove leading # toset options mainly useful forreporting servers.

# The server defaults are fasterfortransactions and fast SELECTs.

# Adjust sizesasneeded, experiment to find the optimal values.

# join_buffer_size=128M

# sort_buffer_size=2M

# read_rnd_buffer_size=2M

bind-address = 0.0.0.0sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

内容说明:

20200620144312027470.png

10、设置开机自启

cd /usr/local/mysql

cd support-files/cp mysql.server/etc/init.d/mysql

chmod+x /etc/init.d/mysql

图示

20200620144312454244.png

11、注册服务

chkconfig --add mysql

正常情况是不会出问题的,但是如果提示没有这个命令就需要需求设置一波:

rpm -aq |grep chkconfig

export PATH=/sbin:$PATH

chkconfig

echo $PATH

PATH="$PATH":/sbin

echo $PATH

20200620144312602687.png

12、查看是否注册成功:

chkconfig --list mysql

图示:

20200620144312770662.png

13、配置 etc/ld.so.conf路径

vim /etc/ld.so.conf

添加以下内容:/usr/local/mysql/lib

图示:

20200620144312984538.png

14、配置环境变量

vim /etc/profile

source/etc/profile

添加如下内容:

MYSQL ENVIRONMENT

export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

图示:

20200620144313066572.png

15、登录

mysql -uroot -p

图示:

20200620144313242360.png

报错一:提示未找到命令。

原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。

首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,

解决办法:

执行这样的命令:

ln -s /usr/local/mysql/bin/mysql /usr/bin

图示:

20200620144313395686.png

报错二:

20200620144313489440.png

解决办法:

反手就是一个命令:

sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

再次执行登录命令:

20200620144313736520.png

哦吼,你会发现又报错了

错误三:

20200620144313860548.png

解决办法:

vim /etc/my.cnf

进入编辑my.cnf文件的模式下,在文件中加入一句话: skip-grant-tables    (这句话就是设置为免密登录)

20200620144314054891.png

设置过后还不能登录还提示报错

先启动mysql :

service mysql start

如果提示无法启动成功就只能先关闭进程了

关闭进程指令:

ps aux |grep ‘mysql*’

关闭mysql的所有进程 ,再次执行上边的启动mysql命令:

在去登录mysql: mysql -uroot -p

20200620144314274626.png

进去之后首先先修改密码:

use mysql;select user,authentication_string,host from user;

ALTER USER‘root‘@‘localhost‘ IDENTIFIED BY ‘123456‘;

图示:

20200620144314408420.png

记得去吧刚才在my.cnf文件中加的那句话(skip-grant-tables)给注释掉。

16、修改密码

use mysql; #进入数据库select host,user,authentication_string,plugin fromuser; #查看用户信息grant all privileges on *.* to ‘root‘@‘%‘;#授权root用户可以远程登陆

flush privileges; #立即生效

ALTER USER ‘root‘@‘%‘ IDENTIFIED WITH mysql_native_password BY ‘Kuaigui2019!‘; #修改root用户密码

FLUSH PRIVILEGES; #立即生效,这个最后执行。要执行

如果是执行给root用户授权这一步时报错,且错误信息如下:

20200620144314586162.png

解决办法:

# 使用mysql 数据库

use mysql;

# 特定用户的host 修改

update userset host=‘%‘ where user=‘root‘;

# 指定用户的授权

grant all privileges on root.* to root@‘%‘;

此时再去查看没看表的变化:

20200620144314683822.png

其中root用户的host已经由localhost变成 %了

如果在执行 第五句命令的时候报错,且如下:

20200620144314796131.png

解决办法:

回到上一个报错去解决。

最后别忘了执行最后一个命令(FLUSH PRIVILEGES;)

17、退出、重启mysql

# 退出mysql

ctrl+z

# 重启mysql服务

service mysql restart

图示:

20200620144314863516.png

到这一步基本都可以说OK了 。

万里长征,还差最后一步,远程连接

三、设置远程连接

1、关闭本地防火墙

2、在my.cnf文件中添加一句话

default_authentication_plugin=mysql_native_password

3、开启linux的防火墙

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

firewall-cmd --reload

执行上边命令的时候记得修改成自己的端口号

图示:

20200620144314927972.png

4、配置默认编码为utf-8

进入my.cnf文件的编辑模式下,添加以下内容:

character_set_server=utf8

init_connect=‘SET NAMES utf8‘

图示:

20200620144314993404.png

编辑完成后保存并退出

重启mysql服务 : service mysql restart

到了这一步,我猜你已经成功了

还有一个报错:

20200620144315079345.png

解决办法:

我猜是密码的问题导致的

解决办法,配置免密登录,重启服务,修改密码,(这个过程前边说过了,不重复说)

当以上所有的都没有问题时,用Navicat测试去连接mysql,如果发现连接的时候报错,如下:

20200620144315693626.png

那就去把linux的防火墙关掉:

systemctl stop firewalld.service

再去测试连接:

20200620144315777614.png

补充:

两个虚拟机之间相互传文件办法:

虚拟机1: 192.168.198.100

虚拟机2:  192.168.116.128

需求:将虚拟机1中的文件传到虚拟机2中。

文件所在虚拟机1中的全路径是: /root/mysql/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

进入到虚拟机2中需要存放的文件夹中,执行如下命令:

scp -r root@192.168.198.100:/root/mysql/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz ./

原文:https://www.cnblogs.com/Zhan-W/p/13162917.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值