不同操作系统下 mysql 安装

  以下介绍3种mysql 的安装方式

  • mac 安装 mysql
  • ubuntu 安装 mysql
  • 使用 mysql 的docker 版本

一、mac 下 mysql 安装

  我是2021年12月24号装的mysql ,所以装 mysql 时,已经和网上的教程有一些区别,重点说一下区别

1.1 区别1-下载界面变化

在这里插入图片描述
  在下载时,只能下载 mac0s 11 的,而我的系统时 catalina 10.15.4 ,让我很烦躁,我没有注意到中间那行小字,也适用于 catalina 10.15 ,我不知道使用其它系统版本的能不能行
  还有个小细节,下载得让我注册邮箱密码啥的,更烦了,其实下面还有一行字,如果只想下载的话,请点击这个链接,结果我一开始没注意到,也很烦躁
  下载时,有两个版本,一个是 x86的,一个是ARM 版本的,我一时竟不知道我的mac的cpu架构时哪个?不知道该下载哪个了,还查了半天,也是醉了,其实用命令

uname -a

带 x86 字样的肯定就是 x86了

1.2 区别2-可以直接设置密码

  下载完成后,肯定是不断的点击继续,大概最后一步吧是 ,please enter a password for the “root” user. 这就和以前的教程不一样了,以前的教程是,会给你生成一个临时密码,你得记住临时密码,然后登录 mysql 还得改,这个就不用,直接设置 root 密码就可以

1.3 区别3-可以不需要手动启动mysql

  和区别2是同一个界面,下面还有一个选项,安装完成后,就启动mysql ,勾选上就行了,这样就不用启动mysql了

1.4、登录 mysql

  安装顺利完成了,你在你的 shell 中输入 mysql ,竟然没有这个命令,挺奇怪的,正常我感觉安装完后,环境变量都已经加进去了才对
   添加环境变量,因为我用的是zsh,所以 在 .zshrc 中添加 shell

export PATH=“/usr/local/mysql/bin:$PATH”
source .zshrc

其实 mysql 的可执行程序是放在 /usr/local/mysql/bin 下面的还挺奇怪,要是不知道,还真得找一下了,然后登录

mysql -uroot -ppasswd

passwd 是你之前设置的密码,完事,可以正常使用 mysql 了

二、ubuntu 下mysql 安装

2.1 下载

  官网->Archives->Product Version->5.7.34->Product Version->Source Code->mysql-5.7.34.tar.gz ,点击下载就ok 了
  mysql 的安装需要依赖 boost ,我不想手动下载安装 boost ,后来,发现官网上有一个带 boost 的版本,就又下载了一个带 boost 的版本

2.2 安装

安装命令

cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql57 -DMYSQL_DATADIR=/data/mysql  -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3308 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1    -DDOWNLOAD_BOOST=0 -DWITH_BOOST=/root/mysql/mysql-5.7.34/boost/boost_1_59_0 -DWITH_INNODB_MEMCACHED=ON

  我才发现,我以前用 cmake 安装时,都没用过这么多的参数,看到这么多的参数,我一下子就想放弃了,还好没放弃

  后来又安装了2个依赖包,一个是缺 ssl 相关的,要注意centos 的安装命令是

yum install openssl-devel

我的是 ubuntu,我一开始用 apt install openssl-devel ,是不行的,得用

apt install libssl-dev

这里还花了我挺久时间的,后来又缺少 pkg-config,在 cmake 的时候都提示你了,直接安装就 ok 了

apt install pkg-config

部分参数解释

cmake  # 参数解析:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql57     指定安装路径
-DMYSQL_DATADIR=/data/mysql                    指定数据存放路径
-DDEFAULT_COLLATION=utf8_general_ci     设置字符校验集
-DMYSQL_TCP_PORT=3308                   mysql 服务端的端口 
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock       设置套接字生成路径
-DWITH_MYISAM_STORAGE_ENGINE=1              存储引擎的支持
-DDOWNLOAD_BOOST=0                      是否需要下载boost,我已经下载过可,写成0  
-DWITH_BOOST=/root/mysql/mysql-5.7.34/boost/boost_1_59_0     指定Boost扩展源码路径

make
make install

  全部执行完之后,就发现,mysql 可执行程序,已经存放在 /usr/local/mysql57/bin 下面了

2.3 后续

  后续就是建立软连接和启动mysql 服务了

[1] 主要参考-写的简单
[2] 正确的安装ssl的方式

二、mysql docker版本 安装

下载

docker pull mysql:5.7.34

2.1 错误建 mysql 容器方式

  迅速下载成功,其实我一直担心的是密码怎么设置,发现在建容器的时候,可以设置密码,后续证明,这个密码根本就没用,如下:

run -itd -p 20316:22 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /E/container_dir:/data --name=official_mysql_voice 09361feeb475 /b
in/bash

  再次进入容器,连接 mysql 报错

root@b7058d583500:/# mysql -h localhost -uroot -p
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

  幸好我灵机一动,可能是mysql 服务端没有启动,然后我用

root@b7058d583500:/# service mysql start
su: warning: cannot change directory to /home/mysql: No such file or directory
2022-03-16T03:38:01.016332Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-03-16T03:38:01.953809Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-03-16T03:38:02.286320Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-03-16T03:38:02.455278Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 7b90c013-a4da-11e
c-a9d2-0242ac110004.
2022-03-16T03:38:02.512133Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-03-16T03:38:03.084349Z 0 [Warning] CA certificate ca.pem is self signed.
2022-03-16T03:38:03.218263Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
su: warning: cannot change directory to /home/mysql: No such file or directory

  然后我再重新连接 mysql

root@b7058d583500:/# mysql  -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.34 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

mysql> exit

  但是后来,我意外发现,我密码根本就没有设置上,不输入密码或者随便输入都 ok,后来我就想,得设置一下密码啊,如下操作

mysql> SET PASSWORD = PASSWORD('songbowei');
Query OK, 0 rows affected, 2 warnings (0.00 sec)

mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY "songbowei";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TO root@"%" IDENTIFIED BY "songbow
ei"' at line 1
mysql>
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'songbowei' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> FLUSH PRIVILEGES; 
Query OK, 0 rows affected (0.00 sec)

  后来我尝试了下,根本就不好使,仍然怎么样都可以登录的上,但令我特别欣慰的是,我在 mac 上登录mysql 时,需要输入我设置的密码,也就是说,本地不需要密码,但是远程需要,先这样吧

2.2 正确建立mysql 容器方式

docker run --name voice_my_sql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d 09361feeb475

  用这种方式建立 mysql 容器,密码就是好使,上面建立 mysql 容器的方法错误也是显然的,因为命令参数上加了 /bin/bash,这样 /bin/bash 就会作为容器本身的启动脚本的命令参数,在启动容器时,可能就会不一样

[1] mysql 安装
[2]mysql 社区版下载链接
[3] 参考设置密码,不好使
[4] 设置密码也试了,也不行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值