Debian安装mysql遇到的问题解决及yum源配置

文章目录

一、安装mysql遇到的问题解决

今天需要在 Debian 中安装 mysql 测试,可是一直安装不上,很是郁闷。。

powershell 复制代码
root@h21:~# apt-get install mysql-server
root@h21:~# apt-get install mysql-client

注意:我在 Debian8.6 64 位中出现这个报错:

powershell 复制代码
root@debian:~# apt-get install mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libterm-readkey-perl mysql-client-5.5 mysql-server-5.5
Suggested packages:
  libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl tinyca
The following NEW packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libterm-readkey-perl mysql-client-5.5 mysql-server mysql-server-5.5
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,606 kB/4,517 kB of archives.
After this operation, 72.4 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
WARNING: The following packages cannot be authenticated!
  libdbd-mysql-perl mysql-client-5.5 mysql-server-5.5 mysql-server
Install these packages without verification? [y/N] y
Err http://security.debian.org/ jessie/updates/main libdbd-mysql-perl amd64 4.028-2+deb8u2
  Could not resolve 'security.debian.org'
Err http://security.debian.org/ jessie/updates/main mysql-client-5.5 amd64 5.5.53-0+deb8u1
  Could not resolve 'security.debian.org'
Err http://security.debian.org/ jessie/updates/main mysql-server-5.5 amd64 5.5.53-0+deb8u1
  Could not resolve 'security.debian.org'
Err http://security.debian.org/ jessie/updates/main mysql-server all 5.5.53-0+deb8u1
  Could not resolve 'security.debian.org'
E: Failed to fetch http://security.debian.org/pool/updates/main/libd/libdbd-mysql-perl/libdbd-mysql-perl_4.028-2+deb8u2_amd64.deb  Could not resolve 'security.debian.org'

E: Failed to fetch http://security.debian.org/pool/updates/main/m/mysql-5.5/mysql-client-5.5_5.5.53-0+deb8u1_amd64.deb  Could not resolve 'security.debian.org'

E: Failed to fetch http://security.debian.org/pool/updates/main/m/mysql-5.5/mysql-server-5.5_5.5.53-0+deb8u1_amd64.deb  Could not resolve 'security.debian.org'

E: Failed to fetch http://security.debian.org/pool/updates/main/m/mysql-5.5/mysql-server_5.5.53-0+deb8u1_all.deb  Could not resolve 'security.debian.org'

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

解决:debian配置网络及apt-get源(文章说默认从cd介质安装,我在 Debian8.6 32 位上确实如此,可是在这个 64 位上却好像不是啊。。)

powershell 复制代码
root@debian:~# vi /etc/apt/sources.list(将网络源注释掉保存后再执行安装命令则好使,因为我使用的是静态IP并没有联网)
#deb http://security.debian.org/ jessie/updates main contrib
#deb-src http://security.debian.org/ jessie/updates main contrib

我不知道这个 Debian 是如何选择镜像源的,

在一台 Debian8.6 的机器上的 sources.list 文件是这样的

powershell 复制代码
# 

# deb cdrom:[Debian GNU/Linux 8.6.0 _Jessie_ - Official amd64 DVD Binary-1 20160917-14:25]/ jessie contrib main

deb cdrom:[Debian GNU/Linux 8.6.0 _Jessie_ - Official amd64 DVD Binary-1 20160917-14:25]/ jessie contrib main

deb http://security.debian.org/ jessie/updates main contrib
deb-src http://security.debian.org/ jessie/updates main contrib

# jessie-updates, previously known as 'volatile'
# A network mirror was not selected during install.  The following entries
# are provided as examples, but you should amend them as appropriate
# for your mirror of choice.
#
# deb http://ftp.debian.org/debian/ jessie-updates main contrib
# deb-src http://ftp.debian.org/debian/ jessie-updates main contrib

当它用 apt-get install mysql-server 的时候就是用的本地源(你把镜像挂载后并点击已连接就行)就能正常安装

另一台 Debian8.6 的sources.list文件也是一样的,可是当它运行 apt-get install mysql-server 时使用的却是网络源,并且感觉这网络源有问题

powershell 复制代码
root@debian:~# apt-get install mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libterm-readkey-perl mysql-client-5.5 mysql-server-5.5
Suggested packages:
  libmldbm-perl libnet-daemon-perl libsql-statement-perl libipc-sharedcache-perl tinyca
The following NEW packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libterm-readkey-perl mysql-client-5.5 mysql-server mysql-server-5.5
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,606 kB/4,517 kB of archives.
After this operation, 72.4 MB of additional disk space will be used.
Do you want to continue? [Y/n] y 
WARNING: The following packages cannot be authenticated!
  libdbd-mysql-perl mysql-client-5.5 mysql-server-5.5 mysql-server
Install these packages without verification? [y/N] y
Err http://security.debian.org/ jessie/updates/main libdbd-mysql-perl amd64 4.028-2+deb8u2
  Could not resolve 'security.debian.org'
Err http://security.debian.org/ jessie/updates/main mysql-client-5.5 amd64 5.5.53-0+deb8u1
  Could not resolve 'security.debian.org'
Err http://security.debian.org/ jessie/updates/main mysql-server-5.5 amd64 5.5.53-0+deb8u1
  Could not resolve 'security.debian.org'
Err http://security.debian.org/ jessie/updates/main mysql-server all 5.5.53-0+deb8u1
  Could not resolve 'security.debian.org'
E: Failed to fetch http://security.debian.org/pool/updates/main/libd/libdbd-mysql-perl/libdbd-mysql-perl_4.028-2+deb8u2_amd64.deb  Could not resolve 'security.debian.org'

E: Failed to fetch http://security.debian.org/pool/updates/main/m/mysql-5.5/mysql-client-5.5_5.5.53-0+deb8u1_amd64.deb  Could not resolve 'security.debian.org'

E: Failed to fetch http://security.debian.org/pool/updates/main/m/mysql-5.5/mysql-server-5.5_5.5.53-0+deb8u1_amd64.deb  Could not resolve 'security.debian.org'

E: Failed to fetch http://security.debian.org/pool/updates/main/m/mysql-5.5/mysql-server_5.5.53-0+deb8u1_all.deb  Could not resolve 'security.debian.org'

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

一开始的方法:(开源镜像使用帮助列表)是镜像源的问题,修改网上的镜像源为

powershell 复制代码
deb http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian stable main contrib non-free
deb http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
deb-src http://mirrors.ustc.edu.cn/debian stable-proposed-updates main contrib non-free
powershell 复制代码
root@debian:~# apt-get update
root@debian:~# apt-get install mysql-server mysql-client(可还是报错。。。)
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 gsettings-desktop-schemas : Breaks: gnome-settings-daemon (< 3.19.92) but 3.14.2-3 is to be installed
                             Breaks: mutter (< 3.19.92) but 3.14.4-1~deb8u1 is to be installed
 libvlccore8 : Breaks: vlc (< 2.2.4-7~) but 2.2.4-1~deb8u1 is to be installed
               Breaks: vlc-nox (< 2.2.4-7~) but 2.2.4-1~deb8u1 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
然后就解决不了了。。。

最后发现还是网络源的问题,最终早到了个好使的网络源真是不容易啊。。。

powershell 复制代码
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib

二、Debain系统mysql8.0的安装以及远程连接

参考:Debain系统mysql8.0的安装以及远程连接

三、彻底卸载软件

删除软件及其配置文件:

powershell 复制代码
apt-get --purge remove mysql-server mysql-client

删除没用的依赖包:

powershell 复制代码
apt-get autoremove mysql-server mysql-client

此时dpkg的列表中有"rc"状态的软件包,可以执行如下命令做最后清理:

powershell 复制代码
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P

四、Python 操作 mysql

后来需要用 Python 操作 mysql,上网搜了半天也没一个能说明白的,其实很简单,我这里在成功安装 mysql-server和mysql-client 后直接再执行 apt-get install python-mysqldb 就 OK 了啊。如果你想深入了解如何用 Python 操作 mysql 的话,可以参考 Python 操作 MySQL 数据库 中的实例。

在安装完 debian 操作系统之后大家做的第一件事大概就是修改 source.list 文件了吧,否则你是无法在线更新软件的,那么 source.list 文件中的各个配置项的具体含义你搞懂了么?下面就以我的 source.list 文件为例为大家讲解一下。

powershell 复制代码
deb http://mirrors.163.com/debian/ jessie main non-free contrib
deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib

五、debian软件源source.list文件格式说明

以下内容来自:debian软件源source.list文件格式说明

其中可以把每一行分为四个部分,说白了,当你在线更新某个软件时,debian就是遵照这四个选项(准确的说是后三项)的指示找到软件来给你安装的:

powershell 复制代码
deb    ###   ftp地址                         ###  版本代号   ###  限定词
deb    ###   http://mirrors.163.com/debian/ ###  wheezy    ###   main non-free contrib

其中,

1. 第一部分

第一部分为deb或者deb-src,其中前者代表软件的位置,后者代表软件的源代码的位置

2. 第二部分

第二部分为你的ftp镜像的url,以我的为例,我是用的是大陆速度较快的网易镜像。在浏览器中打开此链接以后会发现有如下内容:

​​​​​​​​

其中:

/dists/: 目录包含"发行版"(distributions), 此处是获得 Debian 发布版本(releases)和已发布版本(pre-releases)的软件包的正规途径. 有些旧软件包及 packages.gz 文件仍在里面.

/pool/: 目录为软件包的物理地址. 软件包均放进一个巨大的 "池子(pool)", 按照源码包名称分类存放. 为了方便管理, pool 目录下按属性再分类("main", "contrib" 和 "non-free"), 分类下面再按源码包名称的首字母归档. 这些目录包含的文件有: 运行于各种系统架构的二进制软件包, 生成这些二进制软件包的源码包.你可以执行命令 apt-cache showsrc mypackagename, 查看 'Directory:' 行获知每个软件包的存放位置. 例如: apache 软件包存放在 pool/main/a/apache/ 目录中.另外, 由于lib*软件包数量巨大, 它们以特殊的方式归档: 例如, libpaper 软件包存放在 pool/main/libp/libpaper/.

还有一些目录:

/tools/: 用于创建启动盘, 磁盘分区, 压缩/解压文件, 启动 Linux 的 DOS 下的小工.

/doc/:

基本的 Debian 文档, 如 FAQ, 错误报告系统指导等...

/indices/:

维护人员文件和重载文件.

/project/:

大部分为开发人员的资源, 如: project/experimental/ 本目录包含了处于开发中的软件包和工具, 它们均处于 alpha 测试阶段. 用户不应使用这些软件, 因为即使是经验丰富的用户也会被搞得一团糟.)

3. 第三部分

第三部分表示你的debian版本号(注意,不是某个软件的版本号,而是debian本身的版本号),也有人称这是对debian软件包的一种水平划分(这种说法还是比较形象的),具体这一项怎么写,可以参看http://mirrors.163.com/debian/dists/网页里面的内容(如下图),大致来说按版本的旧--\>新程度有这么几大类:oldstable,stable,testing,sid

  1. oldstable顾名思义,就是以前的稳定发行版了,在本例中oldstable就是Debian6.0.8目录的一个链接,两者内容完全一致。

  2. stable是指现在的稳定发行版,对于每个debian来说,每个稳定发行版都会有一个代号,如debian 6叫做squeeze,debian 7叫做wheezy,由于在笔者写本文的时候稳定版是debian7,所以stable就是wheezy的一个链接。

  3. testing指目前还暂时处于测试阶段的debian发行版,如wheezy往下发展就是jessie了,所以testing代指的就是jessie目录,它是jessie的一个链接。

  4. unstable那就是不稳定版本了,但在这个目录清单里我们并没有看到unstable目录,其实它还有一个代号:sid,我们知道debian的发行版本名称大都来自玩具总动员中的角色名称,而sid就是那个专门破坏玩具的邻居家坏小孩,所以就把unstable这个不稳定的软件目录起名为sid了,这里面的软件一般都是最新的,稳定性、安全稳定值得商榷,如果你想做试验小白鼠,大可使用这里的软件。经过一段时间的测试,这里面的软件可能会进入下一个阶段testing目录从而出现在下一个debian发行版中,要么就夭折被直接抛弃了。

4. 第四部分

好了,从水平的角度介绍完debian发行版,现在我们进入这些目录大致看一下里面的内容(以stable目录为例):

我们会发现每个目录都会包括contrib、main、non-free等几个目录,那么这些目录又是什么东东呢?

以垂直的观点来看 Debian 软件的分布:main、contrib、non-free、non-us

因为 Debian 是非营利组织,但是组织架构严谨,有一套完善的软件管理方式。基于其对软件 free 度的一种坚持,对不同版权软件包的录入有一些限定。

下面是对它们的一些简要介绍:

main Debian 里最基本及主要且符合自由软件规范的软件 ( packages )。

contrib 这里头软件虽然可以在 Debian 里头运作,即使本身属于自由软件但多半却是相依于非自由 ( non-free ) 软件。

non-free 不属于自由软件范畴的软件。

non-us 这个分类里头的软件都来自非美国地区,当中可能有牵扯到专利、加密...等等问题。

marillat 对应 Christian Marillat 的软件仓库,包括mplayer, transcode等。

rareware 对应 rarewares.org 的软件仓库, 包括很多音效程序,如lame, musepack, beep media player等。

ustc 对应 debian@ustc 维护的一些软件包,如 mule-gbk, gaim-openq, scim, stardict dicts, patched xpdf, irssi, xmms。

java 对应 Blackdown java。包括 j2re, j2sdk ,mozilla java plugin。

firefly 对应打过firefly补丁的包,包括 fontconfig mozilla mozilla-firefox pango1.0 qt-x11-free xft

misc 对应其它无分类的包,包括 nvidia-kernel, winex3, rox, chmsee等

5. 关于源的混用问题

一般不建议混用 stable, testing 和 unstable 的源。因为很多软件之间都有不同程度的相依性,强行的结果会造成更多软件相依、相斥问题的产生,最终可能影响系统稳定与整个软件升级制度的正常运作。

需要把源从低级升到高级是非常简单的,只要修改 sources.list 里的源就好了。但反过来,降级是一种几乎不可能的任务...如果你使用的是高版本的debian,而在source.list文件中配置的是低版本,那么当你在线安装软件的时候很可能会发现有很多软件依赖问题无法解决,当出现这些问题的时候,就要想到是否要修改下source.list文件中的版本问题了

6. 按需修改自己的sources.list

Debian 有自己独特的版本系统,整个系统有三个版本,分别为稳定版(stable),测试版(testing)和不稳定版(unstable/sid)。每次发布的版本都是稳定版,而测试版在经过一段时间的测试证明没有问题后会成为新的稳定。因为稳定版是会更新的,为了便于区分不同时期的稳定版,每个版本又有自己特有的代号(codename),现在的稳定版称为 wheezy(debian7),测试版称为jessie。而不稳定版的代号永远是 sid。

sources.list的写法

1)找到包含dists和pool这两个目录的那个目录,把地址记下来,比如http://mirrors.163.com/debian/;

2)打开dists,里面包含的目录名字,记下来。比如http://mirrors.163.com/debian/,dists/包含wheezy、testing等。把这些目录名字记下来。

3)打开pool目录,看看里面包含哪些组件目录,比如main、contrib、non-free;

4)书写格式:deb <1记下来的地址> <2记下来的目录名> <3记下来的名字>, 如:

deb http://mirrors.163.com/debian wheezy man contrib non-free

7. 更新软件包列表信息,升级debian

修改 /etc/apt/sources.list 之后一般会运行下面两个命令进行更新升级:

sudo apt-get update

sudo apt-get dist-upgrade

其中 :

update - 取回更新的软件包列表信息

dist-upgrade - 发布版升级

第一个命令仅仅更新的软件包列表信息,所以很快就能完成。

第二个命令是全面更新发布版,一般会下载几百兆的新软件包。

其实在运行完第一个命令后系统就会提示你进行更新升级。因为修改了源,所有这次更新的改动可能会很大,比如安装某个包可能会删除太多的其他包,所有系统会提示你运行"sudo apt-get dist-upgrade"进行全面升级或使用软件包管理器中的"标记全部软件包以便升级"功能进行升级。两者效果是一样的。

补充:RedHat6.6网络yum源配置

powershell 复制代码
vi /etc/yum.repos.d/rhel-source.repo
# 将这里面的内容全部删掉,替换成以下内容:
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/6/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/6/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/6/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/6/centosplus/$basearch/
gpgcheck=1
enabled=0

注:如果是Centos7.2的话把上面配置中的6都改为7就OK

注意:这里也有要注意的地方,还是文件名的问题,版本更替是一定的会有的,在此过程中可能会产生文件名的更改,也许我现在可行的方法,到你用的时候就失效了,这时候你就得自己去核实路径文件名的正确与否了。因为我在这里也出过错,所以才能指出来,之前那些教程的baseurl路径都是baseurl=http://mirrors.163.com/centos/6.0/centosplus/$basearch/ ,以前是命名为6.0,现在已经更改为6,所以之前这个文件改好之后,在下一步进行验证的时候,也是提示连接失败。

powershell 复制代码
yum clean all(清除原来的源配置)
yum install yum(安装现在的yum源,这一步也是测试新安装的yum源有没有安装成功。如果这条命令能执行成功,就说明新安装的yum源已经正确配置好了。)

yum list(更新yum源到本地)

下一家公司CentOS Linux release 7.2.1511 (Core)的yum源配置:

powershell 复制代码
[base]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever
enabled=1
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7

Linux 的话直接使用 wget 获取即可:

powershell 复制代码
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
相关推荐
苹果醋328 分钟前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
别致的影分身2 小时前
使用C语言连接MySQL
数据库·mysql
过过过呀Glik2 小时前
在 Ubuntu 上安装 MySQL 的详细指南
mysql·ubuntu
Sunyanhui15 小时前
牛客网 SQL36查找后排序
数据库·sql·mysql
老王笔记5 小时前
MHA binlog server
数据库·mysql
2401_871213306 小时前
mysql高阶语句
数据库·mysql
山山而川粤8 小时前
网络安全宣传系统|Java|SSM|JSP|
java·开发语言·后端·学习·mysql
_汤姆大叔9 小时前
MySQL 高级操作全解析
数据库·mysql
呼啦啦啦啦啦啦啦啦10 小时前
【MySQL篇】聚合查询,联合查询
数据库·mysql
今天不coding11 小时前
MySQL体系架构
数据库·mysql·体系架构·网络连接层·服务层·存储引擎层·系统文件层