Mysql的安装
Mysql的安装
1.rpm的安装方式
1.rpm需要准备如下4个rpm安装包包
MySQL-client-5.6.50-1.el7.x86_64.rpm #客户端
MySQL-devel-5.6.49-1.el7.x86_64.rpm #开发的
MySQL-server-5.6.50-1.el7.x86_64.rpm #服务端
MySQL-shared-5.6.50-1.el7.x86_64.rpm #分享端
2.在Linux中可以直接通过wget的方式进行下载
#wget https://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-client-5.6.50-1.el7.x86_64.rpm
#wget https://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-devel-5.6.50-1.el7.x86_64.rpm
#wget https://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-server-5.6.50-1.el7.x86_64.rpm
#wget https://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-shared-5.6.50-1.el7.x86_64.rpm
2.yum的安装方式
1.配置好yum源头
2.直接进行安装
yum -y install mariadb-server mariadb #安装客户端合服务端
[root@localhost ~]# yum -y install mariadb-server mariadb
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 mariadb.x86_64.1.5.5.68-1.el7 将被 安装
---> 软件包 mariadb-server.x86_64.1.5.5.68-1.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
=========================================================================================================================
Package 架构 版本 源 大小
=========================================================================================================================
正在安装:
mariadb x86_64 1:5.5.68-1.el7 base 8.8 M
mariadb-server x86_64 1:5.5.68-1.el7 base 11 M
事务概要
=========================================================================================================================
安装 2 软件包
总下载量:20 M
安装大小:107 M
Downloading packages:
(1/2): mariadb-5.5.68-1.el7.x86_64.rpm | 8.8 MB 00:00:11
(2/2): mariadb-server-5.5.68-1.el7.x86_64.rpm | 11 MB 00:00:14
-------------------------------------------------------------------------------------------------------------------------
总计 1.4 MB/s | 20 MB 00:00:14
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : 1:mariadb-5.5.68-1.el7.x86_64 1/2
正在安装 : 1:mariadb-server-5.5.68-1.el7.x86_64 2/2
验证中 : 1:mariadb-server-5.5.68-1.el7.x86_64 1/2
验证中 : 1:mariadb-5.5.68-1.el7.x86_64 2/2
已安装:
mariadb.x86_64 1:5.5.68-1.el7 mariadb-server.x86_64 1:5.5.68-1.el7
完毕!
3.源码的安装方式
编译三部曲
1.获取mysql源码包,源码目录下有一个makefile
2.进入mysql的目录下,执行make指令,自动读取makefile文件
3.make编译完成之后,执行make install安装,安装mysql到指定位置
下载源码包
上传解压安装包至opt目录下
[root@localhost opt]# ls
mysql-5.6.50 mysql-5.6.50.tar.gz
[root@localhost opt]#
编译安装准备
yum -y install \
gcc \
gcc-c++ \
ncurses \ #字符终端下图形互动功能的动态库
ncurses-devel \ #ncurses开发包
bison \ #语法分析器
cmake #mysql需要用cmake编译安装
1.执行下面命令安装编译环境
#yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
创建mysql用户,便于管理
useradd -M -s /sbin/nologin mysql
编译安装,通过cmake生成makefile,可以定制化安装
cd /opt/mysql-*/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \ #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8 \ #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \ #指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \ #指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安装ARCHIVE存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安装BLACKHOLE存储引擎
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \ #安装FEDERATED存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \ #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1 #生成便于systemctl管理的文件
1.进入目录执行cmake语句
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
cmake报错
--
Cannot find appropriate system libraries for WITH_SSL=system.
Make sure you have specified a supported SSL version.
Valid options are :
system (use the OS openssl library),
yes (synonym for system),
</path/to/custom/openssl/installation>
CMake Error at cmake/ssl.cmake:66 (MESSAGE):
Please install the appropriate openssl developer package.
Call Stack (most recent call first):
cmake/ssl.cmake:260 (FATAL_SSL_NOT_FOUND_ERROR)
CMakeLists.txt:483 (MYSQL_CHECK_SSL)
-- Configuring incomplete, errors occurred!
See also "/opt/mysql-5.6.50/CMakeFiles/CMakeOutput.log".
See also "/opt/mysql-5.6.50/CMakeFiles/CMakeError.log".
解决上面的问题需要安装如下,安装之后再执行就不会报错了
yum install -y openssl-devel
成功编译之后出现如下Configuring done,同时再该目录下就会生成一个makefile文件
-- Googletest was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source.
-- If you are inside a firewall, you may need to use an https proxy: export https_proxy=http://example.com:80
-- Library mysqlserver depends on OSLIBS -lpthread;m;/usr/lib64/libssl.so;/usr/lib64/libcrypto.so;dl;crypt
-- Skipping deb packaging on unsupported platform .
-- CMAKE_BUILD_TYPE: RelWithDebInfo
-- COMPILE_DEFINITIONS: _FILE_OFFSET_BITS=64;HAVE_CONFIG_H;HAVE_LIBEVENT2
-- CMAKE_C_FLAGS: -Wall -Wextra -Wformat-security -Wvla -Wwrite-strings -Wdeclaration-after-statement
-- CMAKE_CXX_FLAGS: -Wall -Wextra -Wformat-security -Wvla -Woverloaded-virtual -Wno-unused-parameter -Wno-ignored-qualifiers
-- CMAKE_C_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- CMAKE_CXX_FLAGS_RELWITHDEBINFO: -O3 -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DDBUG_OFF
-- Configuring done
-- Generating done
-- Build files have been written to: /opt/mysql-5.6.50
[root@localhost mysql-5.6.50]# ls -l ./Makefile
-rw-r--r--. 1 root root 71589 8月 20 15:10 ./Makefile
[root@localhost mysql-5.6.50]#
定制制化之后需要通过make 和make install 去安装
[root@localhost ~]#make -j 2 && make install # -j 指定编译用几个核心CPU
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase_embedded.dir/buf/buf0buddy.cc.o
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase.dir/buf/buf0buf.cc.o
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase_embedded.dir/buf/buf0buf.cc.o
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase.dir/buf/buf0dblwr.cc.o
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase_embedded.dir/buf/buf0dblwr.cc.o
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase.dir/buf/buf0checksum.cc.o
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase_embedded.dir/buf/buf0checksum.cc.o
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase.dir/buf/buf0dump.cc.o
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase_embedded.dir/buf/buf0dump.cc.o
[ 28%] Building CXX object storage/innobase/CMakeFiles/innobase.dir/buf/buf0flu.cc.o
在安装的目录下可以发现date是没有数据的,需要初始化
[root@localhost mysql]# cd scripts/
[root@localhost scripts]# ls
mysql_install_db
[root@localhost scripts]# cd ../data/
[root@localhost data]# ls
test
[root@localhost data]#
mysql初始化工作
[root@localhost data]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
解释
--initialize-insecure \ #生成初始化密码为空
--user=mysql \ #指定管理用户
--basedir=/usr/local/mysql \ #指定数据库的安装目录
--datadir=/usr/local/mysql/data #指定数据库文件的存储路径
初始化完之后有两个OK
2022-08-20 15:49:23 18649 [Note] InnoDB: Shutdown completed; log sequence number 1625977
OK
2022-08-20 15:49:24 18671 [Note] InnoDB: Shutdown completed; log sequence number 1625987
OK
初始化完成之后在data目录有
[root@localhost data]# ls -l
总用量 110600
-rw-rw----. 1 mysql mysql 12582912 8月 20 15:49 ibdata1
-rw-rw----. 1 mysql mysql 50331648 8月 20 15:49 ib_logfile0
-rw-rw----. 1 mysql mysql 50331648 8月 20 15:49 ib_logfile1
drwx------. 2 mysql mysql 4096 8月 20 15:49 mysql
drwx------. 2 mysql mysql 4096 8月 20 15:49 performance_schema
drwxr-xr-x. 2 mysql mysql 20 8月 20 15:23 test
准备启动mysql
配置启动脚本
1.要么自己写
2.mysql初始化自动生成的管理脚本,在support-files目录下
[root@localhost support-files]# ls -l
总用量 32
-rwxr-xr-x. 1 root root 1153 8月 20 15:10 binary-configure
-rw-r--r--. 1 root root 773 9月 23 2020 magic
-rw-r--r--. 1 root root 1126 8月 20 15:10 my-default.cnf #默认的my.cnf,可以拷贝到/etc/my.cnf
-rwxr-xr-x. 1 root root 1061 8月 20 15:10 mysqld_multi.server
-rwxr-xr-x. 1 root root 894 8月 20 15:10 mysql-log-rotate
-rwxr-xr-x. 1 root root 10565 8月 20 15:10 mysql.server #启动脚本,shell脚本
3.执行cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
4.执行cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
5.给权限
chmod 777 /etc/init.d/mysqld
mysql启动
[root@localhost support-files]# /etc/init.d/mysqld start
#出现如下错误
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
#上面报错是由于权限的问题
[root@localhost support-files]# ls -l /usr/local/mysql/
总用量 232
drwxr-xr-x. 2 root root 4096 8月 20 15:23 bin
drwxr-xr-x. 5 mysql mysql 159 8月 20 16:09 data
drwxr-xr-x. 2 root root 55 8月 20 15:23 docs
drwxr-xr-x. 3 root root 4096 8月 20 15:23 include
drwxr-xr-x. 3 root root 4096 8月 20 15:23 lib
-rw-r--r--. 1 root root 198041 9月 23 2020 LICENSE
drwxr-xr-x. 4 root root 30 8月 20 15:23 man
-rw-r--r--. 1 root root 943 8月 20 15:47 my.cnf
-rw-r--r--. 1 root root 943 8月 20 15:49 my-new.cnf
drwxr-xr-x. 10 root root 4096 8月 20 15:24 mysql-test
-rw-r--r--. 1 root root 587 9月 23 2020 README
drwxr-xr-x. 2 root root 30 8月 20 15:23 scripts
drwxr-xr-x. 28 root root 4096 8月 20 15:24 share
drwxr-xr-x. 4 root root 4096 8月 20 15:24 sql-bench
drwxr-xr-x. 2 root root 136 8月 20 15:24 support-files
#解决,给权限
chown mysql.mysql /usr/local/mysql/ -R
[root@localhost support-files]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
[root@localhost support-files]#
登入Mysql
上面已经将服务端已经安装好了
mysql -uroot -p
-u 接用户名
-p 后面跟密码
-P 后面跟端口
-h 后面跟主机
mysql 客户端添加环境变量
#在/etc/profile中添加
root@localhost support-files]# vim /etc/profile
#添加mysql客户端的环境变量
export PATH=$PATH:/usr/local/mysql/bin/
[root@localhost mysql]# source /etc/profile
[root@localhost mysql]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin/
#看到如下命令就是已经登入到mysql
[root@localhost mysql]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.50 Source distribution
Copyright (c) 2000, 2020, 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> exit
Mysql的安全配置
给mysql设置密码
通过mysqladmin可以设置数据库密码
[root@localhost ~]# mysqladmin -uroot -p password
Enter password:
New password:
Confirm new password:
[root@localhost ~]#
本文作者:迷茫的28岁
本文链接:https://www.cnblogs.com/zheng520/p/16670909.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步