我正在尝试将 mysql 安装到我的新笔记本电脑上,但出现了这些有趣的错误。
Renaming removed key_buffer and myisam-recover options (if present)
Cannot stat file /proc/2801/fd/1023: Permission denied
Cannot stat file /proc/2812/fd/1023: Permission denied
Cannot stat file /proc/2816/fd/1023: Permission denied
Cannot stat file /proc/2846/fd/7: Permission denied
Cannot stat file /proc/2846/fd/8: Permission denied
Cannot stat file /proc/2846/fd/9: Permission denied
Cannot stat file /proc/2846/fd/10: Permission denied
Cannot stat file /proc/2846/fd/11: Permission denied
Cannot stat file /proc/2846/fd/12: Permission denied
Cannot stat file /proc/2846/fd/56: Permission denied
Cannot stat file /proc/2846/fd/57: Permission denied
Cannot stat file /proc/2846/fd/1023: Permission denied
Cannot stat file /proc/2861/fd/6: Permission denied
Cannot stat file /proc/2861/fd/7: Permission denied
Cannot stat file /proc/2861/fd/8: Permission denied
Cannot stat file /proc/2861/fd/9: Permission denied
Cannot stat file /proc/2861/fd/10: Permission denied
Cannot stat file /proc/2861/fd/11: Permission denied
Cannot stat file /proc/2873/fd/4: Permission denied
Cannot stat file /proc/2873/fd/6: Permission denied
Cannot stat file /proc/2873/fd/7: Permission denied
Cannot stat file /proc/2873/fd/8: Permission denied
Cannot stat file /proc/2879/fd/6: Permission denied
Cannot stat file /proc/2879/fd/7: Permission denied
Cannot stat file /proc/2879/fd/8: Permission denied
Cannot stat file /proc/2879/fd/9: Permission denied
Cannot stat file /proc/2879/fd/10: Permission denied
Cannot stat file /proc/2879/fd/11: Permission denied
Cannot stat file /proc/2879/fd/15: Permission denied
Cannot stat file /proc/2879/fd/16: Permission denied
dpkg: error processing package mysql-server-5.7 (--configure):
installed mysql-server-5.7 package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
mysql-server depends on mysql-server-5.7; however:
Package mysql-server-5.7 is not configured yet.
我卸载并重新安装了 mysql 大约 4 次,但还是发生了同样的事情。我的旧服务器上还有另一个 lamp 堆栈运行良好,有什么建议吗?谢谢!
答案1
我的观察是错误“无法统计文件 /proc/2801/fd/1023:权限被拒绝”我以前从未遇到过这种情况,可能需要@Ryan Akuszewski 笔记本电脑进行进一步分析。我对错误感到惊讶“已安装 mysql-server-5.7 包安装后脚本子进程返回错误退出”因为@Ryan Akuszewski 正在安装,
MYSQL 8.0.13 server
但是有一个引用"mysql-server-5.7 package"
很奇怪。问题应该出在依赖项上,因此笔记本电脑需要先解决它们,然后才能继续安装。这就是为什么我从依赖项安装开始这个过程。如果有人对这个问题有更好的见解,请出来分享他们的专家意见。
libaio
如果您的系统中还没有该库,您可能需要安装它:
如何检查 libaio 是否已安装(快速)
$ apt-cache policy libaio1
如果已安装,它将显示已安装的版本,如果未安装,它将显示文本行。如果已安装,则跳过安装 libaio 并转到步骤 1。
安装 libaio
$ sudo apt-get install libaio1 libaio-dev
笔记:使用以下命令来修复所有依赖项libaio1
,libmecab2
等等。
$ sudo aptitude update
$ sudo aptitude upgrade
笔记:确保aptitude
已经在Ubuntu中安装。
步骤 1 获取 MySQL APT 存储库
Ubuntu 默认存储库附带的 MySQL 软件包版本不是最新版本。如果您需要安装最新版本的 MySQL 数据库,您可能需要在 Ubuntu 中安装其存储库。您也可以使用命令行下载,更改软件包的版本号。
$ cd /tmp/ && wget
https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
然后运行以下命令进行安装
$ sudo dpkg -i mysql-apt-config_0.8.10-1_all.deb
运行上述命令时,您应该会收到配置提示。只需选择“确定”,如下图所示。
MySQL APT Repo 包含 MySQL 服务器以及各种 MySQL 组件。您可以选择适当的产品来选择您希望接收的版本。
第 2 步:安装 MySQL 8.0.13 服务器和客户端。
现在存储库已安装,请运行以下命令进行安装
$ sudo apt update
$ sudo apt install mysql-server mysql-client
还有一些软件包名称中带有server-core
和client-core
。这些软件包仅包含二进制文件,并由标准软件包自动安装。单独安装它们不会导致 MySQL 设置正常运行。
如果系统警告您未满足依赖关系dpkg
,则可以使用以下方法修复它们apt-get
:
$ sudo apt-get -f install # Fix/correct the system with any broken dependencies in place.
$ cd ~
以下是系统上安装文件的位置:
- 所有配置文件(如
my.cnf
)都位于/etc/mysql
- 所有二进制文件、库、标头等均
/usr/bin
位于/usr/sbin
- 数据目录位于
/var/lib/mysql
警告:其他供应商也提供 MySQL 的 Debian 发行版。请注意,它们在特性、功能和约定(包括通信设置)方面可能与 Oracle 构建的发行版不同,并且本手册中的说明不一定适用于安装它们。应参考供应商的说明。
运行上述命令时,您应该会收到配置提示。只需选择 OK,如下图所示。但不幸的是,我的观察是,MySQL 不支持Cosmic Cuttlefish
(Ubuntu 18.10),安装试图中止,但您可以选择Ubuntu Bionic
(18.04) 并继续安装。使用向上箭头并选择ubuntu bionic
(18.04),如图 1 所示。
导航提示:
a) 使用↑或↓将光标定位在您选择的系统上。b
) 点击Spacebar标记您的选择(不要忽略此步骤)。c
) 使用Tab导航到OK
按钮并按下Return。
Figure-2: Select ubuntu bionic (18.04) in the absence of ubuntu cosmic (18.10)
MySQL APT Repo 包含 MySQL 服务器以及各种 MySQL 组件。您可以选择适当的产品来选择您希望接收的版本。
Figure-3: Select appropriate product
在安装过程中,系统将提示您创建并确认 MySQL 根密码。
另外,您确认是否要使用新的密码加密功能。建议使用。
Figure-6: password encryption feature
Figure-7: Configuring mysql communuty server
升级共享客户端库的特别说明
- 您可以使用以下命令从 MySQL APT 存储库安装共享客户端库(请参阅使用 APT 安装其他 MySQL 产品和组件更多细节):
shell> sudo apt-get install libmysqlclient20
- 如果你已经从 Linux 平台的软件存储库安装了共享客户端库,则可以使用相同的命令通过 MySQL APT 存储库及其自己的包进行更新(请参阅 通过 APT 更新替换原生发行版更多细节)。
- 使用 APT 存储库更新 MySQL 后,使用旧版本的共享客户端库编译的应用程序应该可以继续工作。
要安装共享客户端库:
$ sudo apt-get install libmysqlclient18
Figure-8: install the shared client libraries
MySQL 服务应在安装后自动启动,检查其状态以确保其已启动并正在运行。
$ sudo service mysql status
此后,MySQL 应该安装完毕,您可以通过运行以下命令登录:
$ sudo mysql -u root -p
您应该看到如下所示的 MySQL 欢迎屏幕:
步骤3:验证MySQL安装
$ dpkg --get-selections | grep mysql # Show packages relating to mysql
Figure-10: Show packages relating to mysql
因此,包列表如上图 10 所示。
$ dpkg --status mysql-server # Check the details of a package
Figure-11: Status of mysql server
服务器状态如上图11所示。
$ dpkg --listfiles mysql-server # List the installed files of a package
Figure-12: List the installed files of the package
以下命令将检查"mysqld"
(MySQL 服务器守护进程)的位置:
$ which mysqld
Figure-13: Location of mysql server deamon
$ whereis mysqld
Figure-14: Where is msqld?
从上面的输出可以看出,MySQL 服务器守护进程mysqld
安装在/usr/sbin
(系统-软件二进制文件)中。
$ man mysqld // Read the manual
Figure-15: Read the manual for MySQL server daemon
以下命令将检查“mysql”(MySQL 命令行客户端)的位置
$ which mysql
Figure-16: Mysql is installed in '/usr/bin'
$ whereis mysql
Figure-17: Mysql related directories
从上面的输出可以看出,MySQL 命令行客户端mysql
和实用程序(例如mysqladmin
和)mysqldump
位于/usr/bin
(应用程序软件二进制文件)。
$ man mysql // Read the manual
Figure-18: Read the manual for MySQL Command line tool
步骤4:配置MySQL服务器
MySQL 按照指定的顺序从下面显示的文件中读取启动选项(首先读取顶部文件,稍后读取的文件优先。参考:http://dev.mysql.com/doc/refman/5.7/en/option-files.html)
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf (server only)
--defaults-extra-file
启动选项中指定的文件(如果有)~/.my.cnf
~/.mylogin.cnf
(仅限客户端)
安装默认/etc/mysql/my.cnf
包含目录/etc/mysql/conf.d/
,且/etc/mysql/mysql.conf.d/.
为/etc/mysql/conf.d/mysql.cnf
空。因此,主配置文件是/etc/mysql/mysql.conf.d/mysqld.cnf
。
快速浏览/etc/mysql/mysql.conf.d/mysqld.cnf
:
[mysqld]
user = mysql
port = 3306
basedir = /usr
datadir = /var/lib/mysql
......
log_error = /var/log/mysql/error.log
......
"mysql"
创建一个名为的特殊用户来运行 MySQL 服务器。- 服务器在默认端口号上运行
3306
。 - 数据目录位于
/var/lib/mysql
(由 拥有mysql:mysql
)。 - 错误日志位于
/var/log/mysql/error.log
。
步骤 5:启动/关闭 MySQL 服务器(mysqld
)
MySQL 作为名为 的服务运行"mysql"
(配置为"/etc/init.d/mysql"
),在启动后自动启动。要启动/停止/重新启动 mysql,您可以:
$ sudo service mysql start
$ sudo service mysql stop
$ sudo service mysql restart # Stop and start
$ sudo service mysql status # Show the status
安装后,MySQL 服务器将自动启动。您无法启动另一个实例!要检查该mysqld
过程,请执行以下操作:
$ ps aux | grep mysqld
Figure-18: mysqld instance has begun
步骤 6:启动/停止 MySQL 命令行客户端(mysql
)
要启动 MySQL 客户端:
$ mysql -u root -p # Enter the password for the root user you have set in Step 1
mysql> select user, host, authentication_string from mysql.user;
Figure-20: Host and Authentication_string information for various users
mysql> exit
步骤7:检查MySQL的状态。
$ sudo service mysql status # Show the status
Figure-21: Status information of Mysql Server Process.
这就是如何在 Ubuntu 上安装最新版本的 MySQL!尽情享受吧!