linux mysql安装方式_linux下MySQL三种安装方式

1、关于MySQL

MySQL是一种开放源代码的关系型数据库管理系(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理,于1998年一月发行第一个版本。

2、MySQL的安装常见方式有三种:

(1)二进制安装 (2)源码编译安装 (3)rpm包安装

不管用哪种方式安装,先到MySQL官网(http://www.mysql.com)下载相对应的软件包。

3、接下来我将三种安装方式进行一个安装介绍

(1)二进制安装

因为linux centos7系统自带有安装mariadb,所以需要先卸载自带的mariadb数据库

[root@localhost ~]# rpm -qa | grep -i mariadb

[root@localhost ~]# yum -y remove mariadb*

上传软件包到服务器后进行解压缩

[root@localhost ~]# tar -xvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

修改目录名称

[root@localhost ~]# cd /usr/local/

[root@localhost local]# mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql

检查并创建用户和用户组

[root@localhost ~]# groupadd mysql

[root@localhost ~]# useradd -r -g mysql mysql

切换到mysql目录下创建data目录文件夹

[root@localhost mysql]# mkdir data

给目录和用户授予权限,很重要的一步

[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/

[root@localhost ~]# chmod -R 755 /usr/local/mysql/

安装和初始化数据库,执行之前先查看/etc/目录下是否有my.cnf配置文件,如果有将其删除或者修改名字备份起来,不然会出现各种PID和SOCK有关的问题

[root@localhost local]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

复制启动脚本到资源目录

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

给mysqld服务控制脚本加执行权限

[root@localhost ~]# chmod +x /etc/rc.d/init.d/mysqld

将mysqld服务添加到开机自启系统服务

[root@localhost ~]# chkconfig --add mysqld

将mysql命令添加软连接至/usr/bin系统命令中

[root@localhost ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin

启动mysql服务

[root@localhost ~]# systemctl start mysqld

登陆mysql数据库,初始化时使用了--initiablize-insecure所以不需要密码就可登陆,进入数据库后添加密码即可

[root@localhost ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.28 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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>

到此表示MySQL5.7.28二进制安装在redhat7.6上已完成。

(2)源码包安装

[root@localhost ~]# cd /usr/local/src/

[root@localhost src]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.32.tar.gz

或者直接下载mysql-boost.5.7.32.tar.gz,这样可以免去单独下载boost

[root@localhost src]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.32.tar.gz

下载boost网址为:http://www.boost.org/users/download/

这个版本的MySQL要求boost的版本是1.59,链接为:

http://www.boost.org/users/history/version_1_59_0.html

下面给出boost 1.59.0的链接,在/usr/local/src目录下直接用wget进行下载

wget --no-check-certificate http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

安装相关的依赖包

[root@localhost ~]# yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison bison-devel

相关依赖包的作用:

cmake:

由于从 MySQL5.5 版本开始弃用了常规的 configure 编译方法,所以需要 CMake 编译器,用于设置 mysql 的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。

Boost:

从 MySQL 5.7.5 开始 Boost 库是必需的,mysql 源码中用到了 C++的 Boost 库,要求必须安装 boost1.59.0 或以上版本, 这个选择源码安装

GCC:

是 Linux 下的 C 语言编译工具,mysql 源码编译完全由 C 和 C++编写,要求必须安装GCC

bison:

Linux 下 C/C++语法分析器

ncurses:

字符终端处理库

解压MySQL源文件

[root@localhost ~]# tar -zxvf mysql-boost-5.7.32.tar.gz -C /usr/local/

进入MySQL源文件目录,新建configure作为编译目录,并进入该目录

[root@localhost ~]# cd /usr/local/mysql-5.7.32

[root@localhost mysql-5.7.32]# mkdir configure

[root@localhost mysql-5.7.32]# cd configure

使用cmake进行生成编译环境

参数 说明

-DCMAKE_INSTALL_PREFIX=dir_name 基础的文件夹,对应mysqld的--basedir参数

-DMYSQL_DATADIR=dir_name 数据存放目录

-DSYSCONFDIR=dir_name 默认配置my.cnf目录

-DWITH_MYISAM_STORAGE_ENGINE 添加MYISAM引擎支持

-DWITH_INNOBASE_STORAGE_ENGINE 添加InnoDB引擎支持

-DWITH_ARCHIVE_STORAGE_ENGINE 添加ARCHIVE引擎支持

-DMYSQL_UNIX_ADDR 指定mysql.sock位置

-DWITH_PARTITION_STORAGE_ENGINE 安装支持数据库分区

-DINSTALL_BINDIR=dir_name bin目录位置

-DINSTALL_DOCDIR=dir_name 文档目录位置

-DINSTALL_DOCREADMEDIR=dir_name Readme文件位置

-DINSTALL_INCLUDEDIR=dir_name Include目录位置

-DINSTALL_LAYOUT=name 布局选项,包括Standalone、RPM、SRV4、DEB

-DWITH-SYSTEMD 可以使用systemd控制mysql服务

-DEXTRA_CHARSETS 使mysql支持所有的扩展字符

-DCMAKE_BUILD_TYPE RelWithDebInfo: 默认值,启用optimizations,同时生成调试信息 ,Debug: 禁用optimizations, 同时生成调试信息

-DENABLE_DTRACE 是否启用dtrace

-DWITH_EMBEDDED_SERVER 是否构建libmysqld嵌入式服务器库

-DWITH_INNODB_MEMCACHED 是否生成memcached共享库

-DWITH_SSL 加载SSL库 •bundled:使用与分发捆绑的库。•system:使用系统库。这是默认设置

-DWITH_ZLIB 某些功能要求使用压缩库支持构建服务器,例如 compress()和uncompress()函数,以及客户端/服务器协议的压缩, 这个使用_zlib表示zlib支持的来源: •bundled:使用与分发捆绑的zlib库。•system:使用系统zlib库。这是默认设置

-DINSTALL_PLUGINDIR 插件目录

-DDEFAULT_CHARSET 设置mysql的默认字符集

-DDEFAULT_COLLATION 设置默认字符集校对规则

-DWITH_EDITLINE 加载libedit/editline库 •bundled:使用与分发捆绑的库。 •system:使用系统库。这是默认设置

-DCOMPILATION_COMMENT 编译信息,后面启动的时候会看到

-DWITH_DEBUG 支持启用调试

-DWITH_BOOST 指向boost库所在目录

[root@localhost mysql-5.7.32]#

cmake .. -DBUILD_CONFIG=mysql_release \

-DINSTALL_LAYOUT=STANDALONE \

-DCMAKE_BUILD_TYPE=RelWithDebInfo \

-DSYSCONFDIR=/usr/local/mysql5.7/etc/my.cnf \

-DENABLE_DTRACE=OFF \

-DWITH_EMBEDDED_SERVER=OFF \

-DWITH_INNODB_MEMCACHED=ON \

-DWITH_SSL=bundled \

-DWITH_ZLIB=system \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.7/ \

-DINSTALL_PLUGINDIR="/usr/local/mysql5.7/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=../boost

如果编译出现错误,先删除CMakeCache.txt后,再重新编译

[root@localhost configure]# rm -rf CMakeCache.txt

出现下面提示标识成功生成编译环境

-- Configuring done

-- Generating done

使用make进行编译

[root@localhost configure]# make

编译完成后,会出现如下信息:

[100%] Building CXX object sql/CMakeFiles/udf_example.dir/udf_example.cc.o

Linking CXX shared module udf_example.so

[100%] Built target udf_example

[100%] Built target my_safe_process

安装MySQL:

[root@localhost configure]# make install

初始化数据库

添加mysql用户,禁止登陆

[root@localhost ~]# useradd -s /sbin/nologin mysql

新建数据库文件夹及日志文件夹,并更改用户权限为mysql:

[root@localhost ~]# mkdir /mysql_data

[root@localhost ~]# mkdir /var/mysql/log

[root@localhost ~]# chown -R mysql:mysql /mysql_data/

[root@localhost ~]# chown -R mysql:mysql /var/mysql/log

修改配置文件

[root@localhost ~]# vim /etc/my.cnf

[mysqld]

port=3306

user=mysql

datadir=/data/mysql/data

log_error=/data/mysql/log/error.log

basedir=/usr/local/mysql5.7

socket=/usr/local/mysql5.7/mysql.sock

pid-file=/usr/local/mysql5.7/mysqld.pid

default-storage-engine=INNODB

max_connections=200

character-set-server=utf8

[mysql]

port=3306

default-character-set=utf8

socket=/usr/local/mysql5.7/mysql.sock

[client]

port=3306

default-character-set=utf8

socket=/usr/local/mysql5.7/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

#symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

#[mysqld_safe]

#log-error=/var/log/mariadb/mariadb.log

#pid-file=/var/run/mariadb/mariadb.pid

# include all files from the config directory

!includedir /etc/my.cnf.d

初始化数据库

[root@localhost ~]# /usr/local/mysql5.7/bin/mysqld --initialize --user=mysql

配置启动文件及环境变更

[root@localhost ~]# cp /usr/local/mysql5.7/support-files/mysql.server /etc/init.d/mysqld

启动msyql:

[root@localhost ~]# /etc/init.d/mysqld start

设置MySQL开机自动启动

[root@localhost ~]# chkconfig mysqld on

配置MySQL环境变量:

[root@localhost ~]# vim /etc/profile

在最底层添加

PATH=$PATH:/usr/local/mysql/bin

查看root的初始密码

[root@localhost ~]# cat /data/mysql/log/error.log |grep 'password'

[root@localhost ~]# 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.25

mysql> alter user root@'localhost' identified by '12341234';

Query OK, 0 rows affected (0.00 sec)

登陆验证完修改密码

以上就是源码包在redhat7.6安装的全过程。

(3)rpm包安装

上传软件包并进行解压

[root@localhost ~]# tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar

mysql-community-test-5.7.26-1.el7.x86_64.rpm

mysql-community-server-5.7.26-1.el7.x86_64.rpm

mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm

mysql-community-libs-5.7.26-1.el7.x86_64.rpm

mysql-community-embedded-devel-5.7.26-1.el7.x86_64.rpm

mysql-community-embedded-compat-5.7.26-1.el7.x86_64.rpm

mysql-community-embedded-5.7.26-1.el7.x86_64.rpm

mysql-community-devel-5.7.26-1.el7.x86_64.rpm

mysql-community-common-5.7.26-1.el7.x86_64.rpm

mysql-community-client-5.7.26-1.el7.x86_64.rp

卸载自带的mariadb数据库

[root@localhost ~]# yum remove mariadb*

开始安装

完成mariadb的卸载之后,开始进行mysql的安装,这里要注意安装的次序,可以按照如下顺序进行。

[root@localhost ~]# rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm

[root@localhost ~]#rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm

[root@localhost ~]# rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm

[root@localhost ~]# rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

启动服务

安装完成之后,默认mysql不会自启动,需要手动启动,查看当前mysql的状态。

[root@localhost ~]# systemctl status mysqld

● mysqld.service - MySQL Server

Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)

Active: inactive (dead)

Docs: man:mysqld(8)

http://dev.mysql.com/doc/refman/en/using-systemd.html

启动MySQL的服务

[root@localhost ~]# systemctl start mysqld

查看mysql状态

[root@localhost ~]# systemctl status mysqld

● mysqld.service - MySQL Server

Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)

Active: active (running) since Fri 2019-11-01 17:40:54 CST; 13s ago

Docs: man:mysqld(8)

http://dev.mysql.com/doc/refman/en/using-systemd.html

修改初始密码

要登录Mysql,初始登录临时密码可以在Mysql.log日志中找到,切换到/var/log下

[root@localhost log]# pwd

/var/log

[root@localhost log]# grep 'password' mysqld.log

2019-11-02T01:38:00.297529Z 1 [Note] A temporary password is generated for root@localhost: i-C8XdWQl5vs

2019-11-02T01:38:48.148677Z 2 [Note] Access denied for user 'root'@'localhost' (using password: YES)

2019-11-02T01:38:50.709844Z 3 [Note] Access denied for user 'root'@'localhost' (using password: NO)

2019-11-02T01:40:53.338771Z 4 [Note] Access denied for user 'root'@'localhost' (using password: YES)

使用临时密码登录到数据库:

[root@localhost log]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 5

Server version: 5.7.26

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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>

登录到数据库之后,执行操作时会提示先修改密码:

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql>

修改本地登陆密码

mysql> alter user 'root'@'localhost' identified by 'Csc_1O8!';

Query OK, 0 rows affected (0.00 sec)

到此MySQL5.7.26rpm包在redhat7.6上安装完成。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值