Linux 下如何安装yum和Mysql数据库

本文详细介绍了解决Linux服务器上无法Ping通域名、配置域名服务器、解决yum不可用问题的方法,以及MySQL数据库的安装步骤、解决乱码问题的详细过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、如果某台Linux服务器ping不通域名, 如下提示: 
[root@localhost ~]# ping www.baidu.com
ping: unknown host www.baidu.com

首先确定已经连接上路由器,并且路由器能够访问外网,可以通过访问网关进行确定

[root@localhost ~]# ping 8.8.8.8
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.96 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.75 ms

如果确定网络没问题的情况下, 可以通过如下步骤寻找解决办法: 
1) 确定设置了域名服务器, 没有的话, 建议设置Google的公共DNS服务, 它应该不会出问题的 

[root@localhost ~]# cat /etc/resolv.conf

如果不存在直接创建一个文件

因为我的DNS没有设置所以导致了ping外网ping不通。将dns添加到该文件中

[root@localhost ~]# vi /etc/resolv.conf

nameserver    192.168.20.10  (添加)

或者加入192.168.1.1 (默认网关)

二、如果你的yum不可用例如:

可以将/etc/yum.repos.d/CentOS-Media.repo 的源文件:

改为:

name=server
baseurl=file:///mnt
enabled=0
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

原因是路径不对,改完之后执行service network restart 再执行yum clean all 或 yum update,等待下载完成。

三、如果使用yum安装mysql下载

wget http://dev.MySQL.com/get/Downloads/MySQL-5.7/mysql-5.7.11-Linux-glibc2.5-x86_64.tar.gz 不成功时在

http://mirrors.163.com/centos/6/os/x86_64/Packages/ 找到wget-1.12-10.el6.x86_64.rpm 下载后并执行

rpm -ivh --force --nodeps wget-1.12-10.el6.x86_64.rpm   之后wget 就可以正常使用了。

四、Mysql数据库的安装方式:

1、下载三个文件

2、安装前执行rpm -qa | grep -i mysql检查是否已经安装。

3、如果没有安装跳过此步骤:

rpm -ev --nodeps MySQL-server-5.6.37-1.el6.x86.x86_64

rpm -ev --nodeps MySQL-client-5.6.37-1.el6.x86.x86_64

4、删除user用户并查询遗留的文件

userdel mysql

whereis mysql

删除上一步结果
rm -rf /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/n1/mysql.1.gz

5、重新安装rpm包

rpm -ivh --force --nodeps MySQL-server-5.6.17-1.el6.x86.x86_64

rpm -ivh --force --nodeps MySQL-devel-5.6.14-1.el6.x86.x86_64

rpm -ivh --force --nodeps MySQL-client-5.6.17-1.el6.x86.x86_64

安装完成启动mysql服务,

启动
ERROR! The server quit without updating PID file (/var/lib/mysql/ql/localhost.localhost.localdomain.pid)

修改 vi /usr/my.cnf

datadir = /tmp
socket=/tmp/mysql.sock

然后执行
/usr/bin/mysql_install_db --user=mysql --ldata=/tmp

[ERROR] 1 Can’t create/write to file ‘/home/yulele/mysql/data/3306/data/mysql/db.MYI’ (Errcode: 13 - Permission denied)

报错很明显,没有权限。系统centos 6.5

解决方法: 
1.tmpDir设置为/tmp 
2.一定要自定义数据文件目录,怎么解决权限问题 
2.1 如果系统seLinux开启了,setsebool -P mysqld_disable_trans=1 开启对mysql守护进程的权限 ,并且从自定义目录开始授用户读写权限; 
2.2如果系统seLinux已关闭,从自定义目录根开始授用户读写权限,就可以解决问题。

切记:并不是给文件夹最高的权限就可以使用的!!!可以根据需要自定义。

6、执行完启动mysql 

7、若无法连接到mysql请使用软连接执行:
ln -s /tmp/mysql.sock   /var/lib/mysql/mysql.sock
ln -s /tmp/sjj1310.localdomain.pid   /var/lib/mysql/sjj1310.localdomain.pid
描述:如果你在MySQL配置文件 /etc/tc/my.cnf 里修f 里修改了修改了mysql.sock 的产生 的产生位置,则需要做一个链接指向新的文件位置。 ln -sv /home/data/mysql/ql/mysql.sock /va /var/lib/mysql/ql/mysql.sock 上面的 上面的命令给 令给 mysql.sock 建立一 建立一个软链接,否则使用mysql客户端登陆的时候会提示找不到文件 /var/lib/mysql/ql/mysql.sock

解决方案:

rpm -qa | grep -i mysql
rpm -ev 上一步结果
rpm -ev MySQL-server-5.6.37-1.el6.x86_64
rpm -ev XXX

userdel mysql

whereis mysql
删除上一步结果
rm -rf /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

安装的rpm包
rpm -ivh  xxx.rpm 

启动
ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid)

执行
/usr/bin/mysql_install_db --user=mysql --ldata=/var/lib/mysql  --explicit_defaults_for_timestamp
执行失败的话将
my-default.cnf放在/usr/share/mysql/

mysql服务加入开机自启动项

把mysql下的support-files/mysql.server服务脚本放到系统服务,并设置运行权限,这样就可以使用service mysql start启动服务

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

  2. chmod +x /etc/init.d/mysql

查看是否添加成功

     3. chkconfig --list mysql  

1、先检查系统是否装有mysql

rpm -qa | grep mysql
  •  

这里写图片描述

这里返回空值,说明没有安装

这里执行安装命令是无效的,因为centos-7默认是Mariadb,所以执行以下命令只是更新Mariadb数据库

yum install mysql
  •  

删除可用

yum remove mysql
  •  

2、下载mysql的repo源

# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
  •  

安装mysql-community-release-el7-5.noarch.rpm包

# sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
  •  

这里写图片描述

安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

这里写图片描述

3、安装mysql

# sudo yum install mysql-server
  •  

根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。

安装后再次查看mysql

这里写图片描述

如果报错,内容含有

Error: Package: mysql-community-libs-5.6.35-2.el7.x86_64 (mysql56-community)
           Requires: libc.so.6(GLIBC_2.17)(64bit)
Error: Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
           Requires: libc.so.6(GLIBC_2.17)(64bit)
Error: Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
           Requires: systemd
Error: Package: mysql-community-server-5.6.35-2.el7.x86_64 (mysql56-community)
           Requires: libstdc++.so.6(GLIBCXX_3.4.15)(64bit)
Error: Package: mysql-community-client-5.6.35-2.el7.x86_64 (mysql56-community)
           Requires: libc.so.6(GLIBC_2.17)(64bit)
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
  •  

解决:

#yum install glibc.i686
# yum list libstdc++*
  •  

4、重置密码

重置密码前,首先要登录

# mysql -u root
  •  

登录时有可能报这样的错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

# sudo chown -R openscanner:openscanner /var/lib/mysql
  •  

如果报chown: 无效的用户: "openscanner:openscanner"错误,更换命令,并用 ll 查看目录权限列表

chown root /var/lib/mysql/
ll
  •  

这里写图片描述

附: 
① 更改文件拥有者 (chown ) 
[root@linux ~]# chown 账号名称 文件或目录 
② 改变文件的用户组用命令 chgrp 
[root@linux ~]# chgrp 组名 文件或目录 
③ 对于目录权限修改之后,默认只是修改当前级别的权限。如果子目录也要递归需要加R参数 
Chown -R : 进行递归,连同子目录下的所有文件、目录

然后,重启服务:

接下来登录重置密码:

 mysql -u root -p
  •  
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > exit;
  •  

重启mysql服务后才生效 # service mysqld restart

7、用获得的密码进入MySQL命令行模式
[root@localhost ~]# mysql -u root -p
显示结果如下:
 
用一下命令修改密码,密码可以自定义,最好复杂一点。
mysql> SET PASSWORD = PASSWORD('123456');
 
设置root帐号的访问权限
mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
 
退出mysql并重新启动MySQL,使用修改后的新密码进入MySQL
[root@localhost ~]# exit
[root@localhost ~]# service mysql restart
[root@localhost ~]# mysql -u root -p
再输入密码即可登陆进入mysql命令行模式,完成数据库密码修改。

乱码问题分析

MySQL创建数据库时指定编码很重要,很多开发者都使用了默认编码,安装了之后不会再去设置编码的问题(当然可能我很初级的原因),乱码问题可是防不胜防。

 

网页数据一般采用UTF8编码,而数据库默认为latin1 。我们可以通过修改数据库默认编码方式为UTF8来减少数据库创建时的设置,也能最大限度的避免因粗心造成的乱码问题。

 

我们遵循的标准是,数据库,表,字段和页面或文本的编码要统一起来,我们可以通过命令查看数据库当前编码:

 

mysql> SHOW VARIABLES LIKE 'character%';

1

 

这是在出现乱码的时候显示的内容,发现很多对应的都是 latin1,我们的目标就是在下次使用此命令时latin1能被UTF8取代。

 

问题解决

* 1、第一阶段:*

 

在mysql控制台通过编码命令进行设置:

 

SET character_set_client = utf8;

SET character_set_connection = utf8;

SET character_set_database = utf8;

SET character_set_results = utf8;

SET character_set_server = utf8;

然后 mysql> SHOW VARIABLES LIKE 'character%'; 你可以看到全变为 utf8 。

 

但是,这只是一种假象。此种方式只在当前状态下有效,当重启数据库服务后失效。 自己可以尝试一下!

 

这也是网上很多的解决方法,不见效果,自己当时也尝试了很多次,不成功!这里提出来,希望大家不要采坑!

 

* 2、第二阶段:*

 

如何正确的修改,我们只有修改my.cnf(一般都是在/etc/my.cnf目录下)文件,

 

从my.cnf下手(标签下没有的添加,有的修改)

 

补充:

 

在Server version: 5.7.17 MySQL Community Server (GPL)版本中,配置文件的位置是:/etc/mysql/mysql.conf.d/mysqld.cnf

 

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

default-character-set=utf8

 

以上3个section都要加default-character-set=utf8,平时我们可能只加了mysqld一项。

 

注意:上边的配置需要根据具体的mysql版本,不同的mysql版本可能不包含上述的三个section,也没有必要全部都设置,平时我们可能只加了mysqld一项。

 

例如我的配置文件和修改之后的效果(注意我的mysql版本):

我的这个my.cnf文件只有mysqld 这个section,因此可以直接加上default-character-set=utf8 即可。

 

如果,你的配置文件含有client、mysql 标签的话,可以在下边加入,例如下边的配置示例:

修改之后,然后重启mysql服务:

 

service mysqld restart

1

然后登入mysql控制台查看:

编码已经变成utf8,插入一条数据查看结果是否正确:

到此为止!编码的问题已经解决!

 

番外话:

但是有一个值得注意的是,MySQL的一些版本(Server version: 5.6.27-log Source distribution)

如果在创建数据库的时候,编码方式选择的utf8,例如下边:

正常的使用却没有出现任何的编码问题,进入mysql控制台,查看编码:

 

可以看到下边两个是utf8的:

 

| character_set_database   | utf8

| character_set_server     | utf8  

1

2

因此,在进行开发的时候不妨先通过下边的命令确认具体的编码之后,再去开发,以免出现编码的问题:

 

mysql> show variables like'%char%';

最新版:Server version: 5.7.19 MySQL Community Server (GPL) 请看最后补充内容!!!

默认情况下的编码方式为:

 

配置文件位置: /etc/my.cnf

 

修改方式:

 

1、在[client]字段里加入default-character-set=utf8,如下:

 

[client]

default-character-set=utf8

1、在[mysqld]字段里加入character-set-server=utf8,如下:

 

[mysqld]

character-set-server=utf8

1、在[mysql]字段里加入default-character-set=utf8,如下:

 

[mysql]

default-character-set=utf8

1

默认情况下,我只修改了[mysqld],修改后的/etc/my.cnf内容如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值