安装MySQL

MySQL 各版本介绍

视频观看:https://www.bilibili.com/video/BV1ap4y1i75j

MySQL 官网:https://www.mysql.com/cn/

  1. MySQL Community Server社区版本,开源免费,但不提供官方技术支持。

  2. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。

  3. MySQL Cluster集群版,开源免费。可将几个MySQL Server封装成一个Server。

  4. MySQL Cluster CGE 高级集群版,需付费。

  5. MySQL Workbench一款专为MySQL设计的ER/数据库建模工具.MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)商用版(MySQL Workbench SE)

下载适配操作系统的MySQL安装程序

MySQL 官网:https://www.mysql.com/cn/

  • 点击下载

  • 选择GPL Download

b6dcd9f201cdc271b4883064ec29f47f.png

  • 选择server 版本

070beeb5c654a3126e1967d025ee3a6a.png

  • 进入到下载页面后,选择和自己系统匹配的版本下载.也可以直接点击:https://dev.mysql.com/downloads/mysql/下载

下载MySQL Community 版本

MySQL Community 也有很多小的版本:https://downloads.mysql.com/archives/community/

efd7b56b8870bbb37ef37cbacd140e0f.png

大的版本演变是:

 5.0 --> 5.1 --> 5.5 --> 5.6 --> 5.7 -->8.0

最新的版本是8.0 系列的.新版本有新的特性,这里选择稳定的5.7 版本.

编译安装

基于centos7

 $ cat /etc/redhat-releaseCentOS Linux release 7.8.2003 (Core)$ uname -a Linux localhost.localdomain 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

我这里已有下载好的文件,其中boostMySQL 的依赖包,下载地址是:http://www.boost.org/users/download/

这里,mysql5.7.20版本需要boost1.59.0版本的依赖包.

 mysql-5.7.20.tar.gz# mysql 依赖包boost_1_59_0.tar.gz

安装必要的软件依赖

 $ sudo yum install -y cmake bison bison-devel libaio-devel gcc gcc-c++ git  ncurses-devel

解压缩软件包

 $ mkdir mysql$ cp mysql-5.7.20.tar.gz mysql$ cp boost_1_59_0.tar.gz  mysql$ cd mysql/$ tar -zxvf mysql-5.7.20.tar.gz# 移动boost到解压后的文件中$ mv boost_1_59_0.tar.gz mysql-5.7.20

创建configure作为编译目录

 $ cd mysql$ mkdir configure$ cd configure

预编译:

 # 如果有依赖没有安装,需要安装一下依赖$ sudo cmake .. -DBUILD_CONFIG=mysql_release \-DINSTALL_LAYOUT=STANDALONE \-DCMAKE_BUILD_TYPE=RelWithDebInfo \-DENABLE_DTRACE=OFF \-DWITH_EMBEDDED_SERVER=OFF \-DWITH_INNODB_MEMCACHED=ON \-DWITH_SSL=bundled \-DWITH_ZLIB=system \-DWITH_PAM=ON \-DCMAKE_INSTALL_PREFIX=/var/mysql/ \-DINSTALL_PLUGINDIR="/var/mysql/lib/plugin" \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EDITLINE=bundled \-DFEATURE_SET=community \-DCOMPILATION_COMMENT="MySQL Server (GPL)" \-DWITH_DEBUG=OFF \-DWITH_BOOST=..如果编译错误,需要删除 CMakeCache.txt,从新编译# rm -rf CMakeCache.txt

成功标志

 -- Configuring done-- Generating done

执行编译安装

 $ sudo make Scanning dependencies of target udf_example[100%] Building CXX object sql/CMakeFiles/udf_example.dir/udf_example.cc.oLinking CXX shared module udf_example.so[100%] Built target udf_exampleScanning dependencies of target my_safe_process[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.oLinking CXX executable my_safe_process[100%] Built target my_safe_process$ sudo make install
创建用户
 # 创建不登录系统的mysql账户$ sudo useradd -s /sbin/nologin mysql# 创建数据文件夹和日志文件夹$ su - root# mkdir /mysql_data# mkdir /var/mysql/log# chown -R mysql:mysql /mysql_data/# chown -R mysql:mysql /var/mysql/log/

创建mysql_safe文件夹

 [root@localhost ~]# mkdir /var/log/mariadb[root@localhost ~]# touch /var/log/mariadb/mariadb.log[root@localhost ~]# chown -R mysql:mysql /var/log/mariadb/[root@localhost ~]# chmod 755 /var/log/mariadb/

修改配置文件

 [root@localhost ~]# vi /etc/my.cnf# 添加[mysqld]port=3306datadir=/mysql_data/log_error=/var/mysql/log/error.logbasedir=/var/mysql/socket=/var/lib/mysql/mysql.sock

初始化数据库

 [root@localhost ~]# /var/mysql/bin/mysqld --initialize --user=mysql

查看数据文件,及日志文件

 [root@localhost ~]# ll /mysql_data/总用量 110628-rw-r-----. 1 mysql mysql       56 7月  27 03:31 auto.cnf-rw-r-----. 1 mysql mysql      419 7月  27 03:31 ib_buffer_pool-rw-r-----. 1 mysql mysql 12582912 7月  27 03:31 ibdata1-rw-r-----. 1 mysql mysql 50331648 7月  27 03:31 ib_logfile0-rw-r-----. 1 mysql mysql 50331648 7月  27 03:31 ib_logfile1drwxr-x---. 2 mysql mysql     4096 7月  27 03:31 mysqldrwxr-x---. 2 mysql mysql     8192 7月  27 03:31 performance_schemadrwxr-x---. 2 mysql mysql     8192 7月  27 03:31 sys# 错误日志[root@localhost ~]# ll /var/mysql/log/总用量 4-rw-r-----. 1 mysql mysql 802 7月  27 03:31 error.log
配置启动文件

从模板文件中复制启动文件

 [root@localhost ~]# cp /var/mysql/support-files/mysql.server /etc/init.d/mysqld

修改启动文件

 [root@localhost ~]# vi /etc/init.d/mysqld# 找到并修改basedir=/var/mysqldatadir=/mysql_data

创建一个软链接

 # 如果mysql.sock 在 /var/lib/mysql/mysql.sock 下,则如下创建软链接[root@localhost ~]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock# 如果mysql.sock 在/tmp/mysql.sock下[root@localhost ~]# mkdir /var/lib/mysql[root@localhost ~]# ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock

启动mysql

 [root@localhost /]# /etc/init.d/mysqld restartShutting down MySQL.. SUCCESS!Starting MySQL. SUCCESS!

设置mysql开机启动

 [root@localhost /]# /sbin/chkconfig mysqld on

如果不想每次到/var/mysqld/bin/启动mysql ,可以设置bash_profile

 [root@localhost /]# vi ~/.bash_profilePATH=$PATH:$HOME/bin:/var/mysql/bin/[root@localhost /]# source ~/.bash_profile
修改root的登录密码

mysql5.7之后不支持空密码登录,

 # 查看原始密码[root@localhost /]# cat /var/mysql/log/error.log | grep password2020-07-26T21:05:01.038643Z 1 [Note] A temporary password is generated for root@localhost: lZtN,B6<8Dj(

使用初始密码登录

 [root@localhost /]# mysql -u root -pEnter password:Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 3Server version: 5.7.20Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> alter user 'root'@'localhost' identified by 'Pwd.123';Query OK, 0 rows affected (0.00 sec)
开启远程登录支持

1.修改my.cnf

 vim /etc/my.cnf#找到bind-address = 127.0.0.1这一句,然后注释掉保存退出

2.在服务端开启支持

 mysql> grant all privileges on *.* to 'root'@'%' identified by 'password';mysql> flush privileges;
  • 第一个* ,匹配访问的数据库

  • 第二个*,匹配访问的表

  • root,表示登录的用户名

  • %,匹配任意的ip地址

  • password:匹配root的密码

  • flush 即可生效

3.重启mysql

 service mysql restart

4.本地测试:

 mysql -h 服务器ip地址 -P 3306 -u root -p

使用客户端连接

使用visual studio code中的mysql 插件连接成功.

b9ee49a9c8802883305e1d98031f020b.png

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐