linux安装mysql以及遇到的一些问题

linux安装mysql
前言:linux的mysql 默认的路径是 /usr/local/mysql/

由于本文使用的是/usr/local/soft/mysql/,所以在启动的时候会出现一些找不到路径的问题,需要修改配置文件中的路径,因此建议小伙伴们通过 /usr/local/mysql/来安装mysql

一.安装前准备
1.检查是否已经安装过mysql,执行命令

rpm -qa| grep mysql

2.查询所有mysql对应的文件夹

whereis mysql
find / -name mysql

删除相关目录和文件(xxxx为上面查询出来的目录)

rm -rf xxxx xxxx xxxx

验证是否删除完毕

whereis mysql
find / -name mysql

3.检查mysql用户和用户是否存在,如果没有,则创建

cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
groupadd mysql
useradd -g mysql mysql

4.从官网下载用于Linux的Mysql安装包
下载命令:

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

也可以直接到mysql官网选择其他版本下载
二、安装mysql
1.创建目录 /usr/local/soft

mkdir /usr/local/soft
cd /usr/local/soft
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

如果遇到 -bash: wget: command not found,说明没安装wegt,,输入以下命令:
在这里插入图片描述

yum -y install wget --下载wget指令

执行解压命令:

ls
tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz --解压文件

解压完成后,可以看到当前目录下多了一个解压目录
对解压出来的目录重命名为mysql

mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql --重命名为mysql

2.在/usr/local/soft/mysql 目录下建立data 目录

mkdir /usr/local/soft/mysql/data --建立data 目录

3.更改mysql目录下所有目录以及文件夹所属的用户组合用户,以及权限

chown -R mysql:mysql /usr/local/soft/mysql/
chown -R mysql:mysql /usr/local/soft/mysql/data/
chown -R mysql /usr/local/soft/mysql/
chown -R mysql /usr/local/soft/mysql/data/

更改mysql安装文件夹mysql/的权限

chmod -R 755 /usr/local/soft/mysql

如果执行chown -R mysql:mysql /usr/local/soft/mysql报错:chown: invalid user: ‘mysql:mysql’ (chown: ‘mysql.mysql’: 无效的用户)
在这里插入图片描述
说明没有创建mysql用户

groupadd mysql --创建mysql组
useradd -g mysql mysql --创建mysql用户添加到mysql组

4.编译安装并初始化mysql ,务必记住初始化输出日志末尾的密码(数据库管理员临时密码),并且注意datadir=/usr/local/soft/mysql/data等号不能有空格

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

补充说明:
此时可能会出现错误 :
在这里插入图片描述
出现该问题首先检查该链接库文件有没有安装使用 命令进行核查,运行命令后发现系统中无该链接库文件

rpm -qa|grep libaio --如果没有则执行下面的命令
yum install libaio-devel.x86_64

安装成功后,继续运行数据库的初始化命令

5、运行初始化命令成功后,输出日志如下:
在这里插入图片描述
记录日志最末尾位置root@localhost:后的字符串,此字符串为mysql管理员临时登录密码。(7&8PyOsELLYD)
6.编辑配置文件my.cnf ,添加/修改配置如下(黄色字体以及对应的内容)
找到my.cnf文件:

find / -name my.cnf

编辑my.cnf文件:

vim /etc/my.cnf

[mysqld]
datadir=/usr/local/soft/mysql/data
socket=/usr/local/soft/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1

# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

7、启动mysql服务器

/usr/local/soft/mysql/support-files/mysql.server start

会报错,报错内容如下图所示:
在这里插入图片描述
报错原因是默认的启动路径是/usr/local/mysql/ :
在这里插入图片描述
修改mysql配置文件:

vi /usr/local/soft/mysql/support-files/mysql.server

修改前:


# Set some defaults
mysqld_pid_file_path=
if test -z "$basedir"
then
  basedir=/usr/local/mysql
  bindir=/usr/local/mysql/bin
  if test -z "$datadir"
  then
    datadir=/usr/local/mysql/data
  fi
  sbindir=/usr/local/mysql/bin
  libexecdir=/usr/local/mysql/bin
else
  bindir="$basedir/bin"
  if test -z "$datadir"
  then
    datadir="$basedir/data"
  fi
  sbindir="$basedir/sbin"
  libexecdir="$basedir/libexec"
fi

修改后:

mysqld_pid_file_path=
if test -z "$basedir"
then
  basedir=/usr/local/soft/mysql/
  bindir=/usr/local/soft/mysql/bin
  if test -z "$datadir"
  then
    datadir=/usr/local/soft/mysql/data
  fi
  sbindir=/usr/local/soft/mysql/bin
  libexecdir=/usr/local/soft/mysql/bin
else
  bindir="$basedir/bin"
  if test -z "$datadir"
  then
    datadir="$basedir/data"
  fi
  sbindir="$basedir/sbin"
  libexecdir="$basedir/libexec"
fi

:wq 保存退出!

cp /usr/local/soft/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
/etc/init.d/mysqld start

再报错:启动mysql报错mysqld_safe error: log-error set to /var/log/mariadb/mariadb.log
在这里插入图片描述
因为没有路径也没有权限,所以创建此路径并授权给mysql用户

mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
# 用户组及用户
chown -R mysql:mysql /var/log/mariadb/
# 再执行启动命令

如果还报错:因为新版本的mysql启动,默认是/usr/local/mysql
修改mysqld_safe
在这里插入图片描述

find / -name mysqld_safe
cat /usr/local/soft/mysql/bin/mysqld_safe |grep /usr/local/mysql
vi /usr/local/soft/mysql/bin/mysqld_safe

vim命令:%s#/usr/local/mysql#/usr/local/soft/mysql#g
(解释:将/usr/local/soft/mysql区别替换为/usr/local/soft/mysql
–使用#代替/ --g代表全局

启动成功:
在这里插入图片描述
8、添加软连接,并重启mysql服务

ln -s /usr/local/soft/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/soft/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/soft/mysql/mysql.sock /tmp/mysql.sock
service mysql restart
mysql -uroot -p
(输入之前保存的管理员临时密码)
在这里插入图片描述

9、登录mysql,修改密码(密码为步骤5生成的临时密码)

mysql>set password=password(‘root’);

10、开放远程连接

mysql>use mysql;
msyql>update user set user.Host=’%’ where user.User=‘root’;
mysql>flush privileges;
mysql> quit
mysql -uroot -proot

11、设置开机自动启动

1、将服务文件拷贝到init.d下,并重命名为mysql

cp /usr/local/soft/mysql/support-files/mysql.server /etc/init.d/mysqld

2、赋予可执行权限

chmod +x /etc/init.d/mysqld

3、添加服务

chkconfig --add mysqld

4、显示服务列表

chkconfig --list

在这里插入图片描述
12、navicat 连接mysql
步骤是:
1.关掉防火墙

systemctl stop firewalld

2.设置mysql用户的远程访问

如果还报错,可以看下面的解决方法:
Navicat新建连接出现10060 “Unknown error” 错误
直接上图,提醒是这个错误
在这里插入图片描述

解决步骤:

1.检查网络通不通

ping 本地网络、ping 本机网卡链路、ping 网关、ping 外网

2.检查防火墙firewalld

systemctl status firewalld
在这里插入图片描述
发现是开启的,把它关闭,因为有时候服务器防火墙会错把3306端口通过的信息给拦住了,再查询防火墙状态发现已经关闭了
systemctl stop firewalld
systemctl status friewalld
在这里插入图片描述
3.检查3306端口是否开启,一般情况下开启服务器这个端口都默认打开的
netstat -an|grep 3306
在这里插入图片描述

4.检查远程用户权限
查看用户信息及权限,发现没有用户拥有远程登录的全部权限%
use mysql;
select user,host from mysql.user;
在这里插入图片描述
需要创建一个用户test密码为123456,让它可以在任何主机上登录并拥有所有权限,并刷新权限

grant 权限 on 数据库.数据表 to 用户名@‘登录主机’ indentified by ‘登录密码’

刷新权限 flush privileges
在这里插入图片描述
添加成功
在这里插入图片描述
连接测试,成功
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "wget: 无法解析主机地址 “mirrors.aliyun.com”" 的错误消息表示 wget 无法连接到 mirrors.aliyun.com 这个网站。这可能是由于网络连接问题或者 mirrors.aliyun.com 网站暂时无法访问导致的。建议检查网络连接并稍后重试。 ### 回答2: 当我们使用wget命令来从网络上下载文件时,有时可能会遇到“wget: 无法解析主机地址”这样的错误提示,其实这个错误提示是告诉我们wget无法解析我们输入的网址。这种情况通常是由于以下几种可能的原因所导致的。 1.网络不通 首先,请检查你的网络连接是否正常。查看你的网络设置是否正确配置,以及你是否能够正常访问其他网站。如果你无法访问其他网站,那么很可能是因为你的网络出现了问题,这时你需要修复网络故障或等待网络恢复正常。 2. DNS解析失败 如果你的网络连接正常,但仍然无法解析网址,请检查DNS设置。DNS(Domain Name System)是一个网络协议,用于将域名与IP地址相互映射。如果DNS设置错误或者出现故障,那么就会出现无法解析主机地址的错误。 可以通过ping命令检查DNS解析是否正常。打开终端,输入ping mirrors.aliyun.com命令。如果ping命令能够返回正确的IP地址,那么说明DNS解析正常。如果ping命令无法返回正确的IP地址,就需要检查DNS设置是否正确。可以修改/etc/resolv.conf文件中的DNS设置,或者通过命令行工具设置。 3. 网址错误 最后,如果网络连接和DNS设置都没有问题,那么就有可能是输入的网址有误。请检查输入的网址是否正确,或者搜索正确的网址并尝试重新输入。 总之,如果你遇到了“wget: 无法解析主机地址”的错误提示,请按照以上方法逐一检查,找到问题所在并解决。这样就可以成功使用wget命令下载所需文件了。 ### 回答3: wget是一个常用的命令行工具,可以通过URL从网络中获取数据。然而,当在使用wget命令时出现“无法解析主机地址”的错误提示,这意味着wget无法解析该主机地址(mirrors.aliyun.com),从而无法连接到该主机。 这种错误通常表示DNS服务器无法解析该主机名。对于这种情况,我们可以尝试以下的解决方法: 1. 检查网络连接是否正常,确认是否已连接至Internet。可以通过ping命令测试网络连接是否正常,例如:ping mirrors.aliyun.com 2. 检查DNS服务器是否可用,尝试输入其他网址测试是否可以正常解析。可以使用nslookup命令测试DNS服务器是否可用,例如:nslookup mirrors.aliyun.com 3. 修改DNS服务器设置,输入正确的DNS服务器IP地址。可以在/etc/resolv.conf文件中进行设置,添加一行指定DNS服务器的IP地址,例如:nameserver 8.8.8.8 4. 检查本地hosts文件中是否存在该主机名的解析设置。如果存在,则可能需要删除该记录。 通过以上几个方法,大部分的“无法解析主机地址”的错误都能够得到解决。如果还存在问题,建议联系网络管理员或云服务商寻求更详细的帮助解决。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值