MySQL(一)安装

一.源码包安装

 

1. 安装依赖

[root@db02 ~]# yum install -y ncurses-devel libaio-devel cmake glibc autoconf gcc-c++

 

2. 上传包或者在网站获取安装地址

 

3. 解压

[root@db02 ~]# tar xf mysql-5.6.42.tar.gz

 

4. 生成

# 进入MySQL目录

[root@db02 ~]# cd mysql-5.6.42/

# 创建安装目录(指定安装目录)

[root@db02 ~/mysql-5.6.42]# mkdir /service

##生成
[root@db02 mysql-5.6.42]#

#程序存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/service/mysql-5.6.42 \
#数据存放位置
-DMYSQL_DATADIR=/service/mysql-5.6.42/data \
#socket文件存放位置
-DMYSQL_UNIX_ADDR=/service/mysql-5.6.42/data/mysql.sock \
#使用utf8字符集
-DDEFAULT_CHARSET=utf8 \
#校验规则
-DDEFAULT_COLLATION=utf8_general_ci \
#使用其他额外的字符集
-DWITH_EXTRA_CHARSETS=all \
#支持的存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#禁用的存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
#启用zlib库支持(zib、gzib相关)
-DWITH_ZLIB=bundled \
#启用SSL库支持(安全 套接层)
-DWITH_SSL=bundled \
#启用本地数据导入支持
-DENABLED_LOCAL_INFILE=1 \
#编译嵌入式服务器支持
-DWITH_EMBEDDED_SERVER=1 \
# mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。
-DENABLE_DOWNLOADS=1 \
#禁用debug(默认为禁用)
-DWITH_DEBUG=0


完整生成命令:

[root@db02 mysql-5.6.42]#  cmake . -DCMAKE_INSTALL_PREFIX=/service/mysql-5.6.42 \
-DMYSQL_DATADIR=/service/mysql-5.6.42/data \
-DMYSQL_UNIX_ADDR=/service/mysql-5.6.42/data/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

 

5. 编译安装

[root@db02 ~/mysql-5.6.42]# make && make install

 

6. 做软链接 (方便+安全)

[root@db02 ~]# ln -s /service/mysql-5.6.42 /service/mysql

 

7. 创建启动用户

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

 

8. 拷贝启动文件和配置文件

[root@db02 ~]# cd /service/mysql/support-files/

[root@db02 /service/mysql/support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite '/etc/my.cnf'?  y

[root@db02 /service/mysql/support-files]# cp mysql.server /etc/init.d/mysqld

 

9.初始化

[root@db02 ~]# cd /service/mysql/scripts/
[root@db02 /service/mysql/scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data

 

10.配置system管理启动mysql

[root@db03 ~]# vim /usr/lib/systemd/system/mysqld.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/service/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

 

[root@db03 ~]# systemctl daemon-reload    

 

11.启动数据库

[root@db02 /service/mysql/scripts]# systemctl start mysqld
[root@db02 /service/mysql/scripts]# netstat -lntp

 

 

二:二进制安装MySQL

1.安装依赖

[root@db03 ~]# yum install -y ncurses-devel libaio-devel cmake glibc autoconf gcc-c++

 

2.上传包或者在网站获取安装地址

 

3. 解压

[root@db03 ~]# tar xf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz

 

4.创建自定义安装目录

[root@db03 ~]# mkdir /service

 

5. 移动并改名

[root@db03 ~]# mv mysql-5.6.42-linux-glibc2.12-x86_64 /service/mysql-5.6.42

 

6.做软链接

[root@db03 ~]# ln -s /service/mysql-5.6.42 /service/mysql

 

7.创建启动用户

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

 

8.拷贝启动文件和配置文件

[root@db03 ~]# cd /service/mysql/support-files/
[root@db03 /service/mysql/support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite '/etc/my.cnf'? y
[root@db03 /service/mysql/support-files]# cp mysql.server /etc/init.d/mysqld

 

9.初始化

[root@db03 ~]# cd /service/mysql/scripts/
[root@db03 /service/mysql/scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data

 

10.配置system管理启动

[root@db03 ~]# vim /usr/lib/systemd/system/mysqld.service

[root@db03 ~]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/service/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

[root@db03 ~]# systemctl daemon-reload

 

11.启动数据库

#1.使用system启动

[root@db03 ~]# systemctl start mysqld #查看进程启动失败,没有任何报错

#2.使用mysqld启动脚本启动
[root@db03 ~]# /etc/init.d/mysqld start
/etc/init.d/mysqld: line 244: my_print_defaults: command not found
/etc/init.d/mysqld: line 264: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
#原因:二进制的包是源码包已经生成编译安装完成的,在cmake阶段已经指定了所有的目录都是/usr/local/mysql,所以启动时所有程序都去找/usr/local/mysql目录,没有该目录,所以启动失败

#3.解决启动问题
1)方法一:做软连接
[root@db03 ~]# ln -s /service/mysql /usr/local/mysql

2)方法二:修改启动文件
[root@db03 ~]# vim /etc/init.d/mysqld
basedir=/service/mysql
datadir=/service/mysql/data

#4.再次测试启动
[root@db03 ~]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
#或者
[root@db03 ~]# systemctl start mysqld

 

12 设置环境变量

[root@db03 ~]# vim /etc/profile.d/mysql.sh

export PATH=/service/mysql/bin:$PATH

[root@db03 ~]# source /etc/profile

 

 

 

 

 

 

 

posted @ 2020-10-27 20:54  芒果~~  阅读(117)  评论(0编辑  收藏  举报