因为使用的是 wsl 就直接 将 mysql 安装包 下载到了 g 盘的 根目录。
mysql第一步.png
将 解压好的包 重命名 为 mysql 放到 /usr/local/ 下面
微信截图_20200304130015.png
3.进入到 /usr/local/ 下 ,创建用户和用户组并授权
groupadd mysql #创建组
useradd -r -g mysql mysql #创建用户
cd mysql/ #进入 mysql 下 授权所有文件
chown -R mysql:mysql ./ # 授权
微信截图_20200304130630.png
在 /usr/local/mysql/ 目录下,创建 data 文件夹
mkdir data
初始化数据库 并且记住随机生成的密码,登录要用(顺利的过程就到这里,接下来,就是我遇到的一系列问题)
在执行下面这段初始化命令的时候:
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
遇到的第一个问题:
bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
尝试使用 apt install libaio 来安装 libaio包,天不遂人愿 根本就没有这个包,提示: Unable to locate package libaio
在我深度的思考下(一顿百度) 发现 好像 apt-get install libaio-dev 可以使用。就在我以为 可以使用的时候 继续执行初始化命令,又得到了新的错误:
微信截图_20200304131828.png
于是我又进入了 深度思考 最后 发现 libaio 包 在ubuntu 下不叫这个名字 叫 libaio1 (哦 谢特 妈惹法克)
果断执行 apt-get install libaio1 安装成功
就在我以为一切都结束了的是时候,又果断的执行了初始化命令,然鹅事情并没有那么简单,我有成功得到了一个新的错误,但是却生成了 随机密码(小小的脑袋 大大的疑惑,这到底是能用还是不能用,最后我选了了忽略错误,正所谓 不影响程序运行的bug 就不是bug,啊哈哈哈哈哈)。 就这样似儿的:
微信截图_20200304132548.png
继续进行了下一步
修改 /usr/local/mysql/ 当前用户
chown -R root:root ./
chown -R mysql:mysql data
创建 my.cnf 文件并授权,注意 在/usr/local/ mysql/ 目录下面
cd cupprot-files/ # 进入到这个目录下
touch my-default.cnf #创建 my-default.cnf 文件
chmod 777 ./my-default.cnf # 给文件授权
cp my-default.cnf /etc/my.cnf # 复制 my.default.cnf 文件到 /etc/ 目录下 并重命名为 my.cnf
配置 my.cnf
vim /etc/my.cnf
vim 中 按 i 进入编辑状态 ,按 esc 退出编辑状态,shift+; 输入命令 wq 保存退出
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock
log-error = /usr/local/mysql/data/error.log
pid-file = /usr/local/mysql/data/mysql.pid
tmpdir = /tmp
port = 5186
#lower_case_table_names = 1
# server_id = .....
# socket = .....
#lower_case_table_names = 1
max_allowed_packet=32M
default-authentication-plugin = mysql_native_password
#lower_case_file_system = on
#lower_case_table_names = 1
log_bin_trust_function_creators = ON
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
开机自启 , 进入 /usr/local/mysql/support-files 进行设置
cd dupport-files/
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
注册服务 (问题 又 双 叒 来了)
需要使用 chkconfig 来处理 ,根本没有 chkconfig 这个命令,中间的波折就不说了(还是简单的说一下,有小伙子 使用 sysv-rc-conf 来替代 ,我发现我 连 sysv-rc-conf 也没有 ,apt-get update 后,还是不行,进过深度思考以后,最后在 /ect/apt/sources.list 文件夹的末尾添加了 deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse 这段文本后 ,在 apt-get update, 然后 apt-get install sysv-rc-conf ,可算是安装成功了。 然后 到 /usr/sbin/目录下 ,执行 cp sysv-rc-conf chkconfig, 这样 可算是 可以使用 chkconfig,但是这仅仅是我以为的,chkconfig --list 命令可以使用 ,但是 chkconfig --add mysql ,报错 Unknown option:add,没有 add 操作,阿西吧,我的头大了。
),最后的解决办法是到这个网站去下载 chkconfig.deb 文件来安装
https://debian.pkgs.org/8/debian-main-amd64/chkconfig_11.4.54.60.1debian1_all.deb.html
下载好文件以后 通过 dpkg -i chkconfig.deb 安装
完成以后 可算是可以执行 chkconfig -add mysql.
微信截图_20200304141637.png
微信截图_20200304141532.png
/etc/ld.so.conf 配置路径
vim /etc/ld.so.conf
添加 如下内容
/usr/local/mysql/lib
11.配置环境变量
# vim /etc/profile
# source /etc/profile
添加如下内容:
#MYSQL ENVIRONMENT
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
登录 ,我以为结束了,然而...
执行 service mysql start
微信截图_20200304142138.png
、
感觉好像没有成功。
果然,在我 执行 mysql -u root -p 的时候
Command 'mysql' not found
打开 错误日志看看 vim /usr/local/mysql/data/error.log
最主要的 错误信息是:
Please check your OS documentation and install appropriate binary of InnoDB
又进入了深度思考 (一顿百度) 没思考出来,又换个地方思考 ( 必应 )
https://github.com/Microsoft/WSL/issues/3631
这里,我好像找到了 答案。
微信截图_20200304142651.png
上面的 大体意思就是, WSL 不能安装 mysql8,哪怕你是最新版的 mysql 8。 (哦 谢特 妈惹法克),给出的步骤是 删除mysql 8 安装 mysql 5。好像就可以,上面的 安装是在线安装,而我需要的 离线安装 。