安装环境:Deepin 15.9 64位
MySql版本:5.7
所有操作都在root用户下进行
访问https://dev.mysql.com/downloads/mysql,右边找到5.7版本,选择下载需要的安装包,这里选择Debian 9 x86_64版本,第一个DEB Bundle包,如下图。
根据官方文档https://dev.mysql.com/doc/refman/5.7/en/linux-installation-debian.html,执行以下步骤安装
apt-get install libaio1
tar -xvf mysql-server_*.tar
dpkg-preconfigure mysql-community-server_*.deb
执行以上命令后,命令行会显示一个窗口,提示输入root密码,并会再次确认输入,此root密码非常重要
dpkg -i mysql-{common,community-client,client,community-server,server}_*.deb
此步骤会提示一些依赖错误,没关系,可以继续往下
apt-get -f install
至此MySql已安装完成,并启动完成,程序文件在/usr/bin和/usr/sbin目录下,配置文件在/etc/mysql目录下,数据文件在/var/lib/mysql目录
service mysql start/stop
或者
systemctl start/stop mysql
systemctl enable/disable mysql
[mysql]
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
default-storage-engine=InnoDB
skip-name-resolve
如果需要远程登录的话,需要注释掉/etc/mysql/mysql.conf.d/mysqld.cnf文件中默认的bind-address配置,或者替换成实际的ip地址
#bind-address=127.0.0.1
根据上面的安装步骤,发现阻止安装自动化的步骤在手动预配置root密码,有没有什么方法来代替此步骤?
在执行dpkg-preconfigure mysql-community-server_*.deb
命令并输入密码后,密码信息一定是保存在一个地方,我们要把此信息查询出来,并通过自动配置的方法来代替dpkg-preconfigure命令的方式来配置root密码。
root@realjt-pc ~ $ debconf-show --listowners | grep mysql
mysql-community-server
root@realjt-pc ~ $ debconf-show mysql-community-server
* mysql-community-server/re-root-pass: (password omitted)
* mysql-community-server/root-pass: (password omitted)
* mysql-community-server/data-dir:
mysql-community-server/remove-data-dir: false
mysql-community-server/root-pass-mismatch:
通过上面两个查询命令,可以看出执行dpkg-preconfigure mysql-community-server_*.deb
后系统中存在的配置项,其中带*的是必须的。
在此,我们准备一个文本文件,内容如下,格式为“owner key type text”,其中password后面的值为密码明文,需要替换成自己实际需要配置的值。
root@realjt-pc ~ $ cat mysql.txt
mysql-community-server mysql-community-server/root-pass password root
mysql-community-server mysql-community-server/re-root-pass password root
mysql-community-server mysql-community-server/data-dir text
准备好文本文件后,通过debconf-set-selections命令加载文本内容到系统中
debconf-set-selections mysql.txt
至此,自动配置MySql安装时需要的root密码已完成,按上面步骤写一个Shell脚本即可以全自动化安装部署MySql数据库了。