1、在阿里云服务器搭建openv-p-n(有条件的同学再做)

2、通过编译、二进制安装MySQL5.7

编译安装MySQL5.7

安装相关包

yum -y install libaio numactl-libs

创建用户和组

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

准备数据目录

mkdir -p /data/mysql
chown mysql:mysql /data/mysql

准备程序文件

tar xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local
cd /usr/local/
ln -s mysql-5.7.31-linux-glibc2.12-x86_64/ mysql
chown -R root.root /usr/local/mysql/

准备环境变量

echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

准备配置文件

cp /etc/my.cnf{,.bak}
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
skip_name_resolve=1
socket=/data/mysql/mysql.sock
log-error=/data/mysql/mysql.log
pid-file=/data/mysql/mysql.pid
[client]
socket=/data/mysql/mysql.sock

初始化数据库文件并提取root密码

方式1: 生成随机密码
[root@localhost ~]# mysqld --initialize --user=mysql --datadir=/data/mysql
[root@localhost ~]# awk '/temporary password/{print $NF}' /data/mysql/mysql.log
pkYeqDc9t+#/
方式2: 生成 root 空密码
mysqld --initialize-insecure --user=mysql --datadir=/data/mysql

准备服务脚本和启动

方式一:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start 方式二:
使用systemd管理mysql
vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://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=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000 方式三:
不借助工具启动
[root@localhost ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

修改口令

#修改前面生成的随机密码为指定密码
mysqladmin -uroot -p'pkYeqDc9t+#/' password P@ssw0rd
#修改前面生成的空密码为指定密码
mysqladmin -uroot password P@ssw0rd

测试登录

[root@localhost ~]# mysql -uroot -p'P@ssw0rd'

配置MySQL中免去密码校验进入数据库

vim /etc/my.cnf
[mysqld]
skip-grant-tables 重启mysql服务 免密登录MySQL
然后再次进入到终端当中,敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中 修改默认的密码
mysql> alter user root@'localhost' identified by 'P@ssw0rd';
Query OK, 0 rows affected (0.00 sec)

set password for 'username'@'host' = password('newpassword') 若出现以下错误:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 则执行 flush privileges mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效。­

源码编译安装

安装相关依赖包

[root@localhost ~]# yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel perl-Data-Dumper

准备用户和数据目录

useradd -r -s /sbin/nologin -d /data/mysql mysql

准备数据库目录

mkdir /data/mysql -p
chown mysql.mysql /data/mysql

下载并解压缩源码包

tar xvf mysql-5.6.51.tar.gz -C /usr/local/src

源码编译安装MySQL

cd mysql-5.6.51/
cmake . \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \ ##mysql程序安装目录
-DMYSQL_DATADIR=/data/mysql/ \ ##数据库数据存放目录
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci make -j 8 && make install 开启多CPU核数编译(sockets)

准备环境变量

echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

生成数据库文件 * 重点

cd /apps/mysql/
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql

准备配置文件

cp -b /apps/mysql/support-files/my-default.cnf /etc/my.cnf  #先备份再替换

准备启动脚本,并启动服务

cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start

3、二进制安装mariadb10.2

mariadb历史版本下载地址

https://mariadb.org/mariadb/all-releases/

创建用户

[root@localhost ~]# useradd -r -d /data/mysqldb -s /sbin/nologin mysql
[root@localhost ~]# getent passwd mysql
mysql:x:997:995::/data/mysqldb:/sbin/nologin
[root@localhost ~]# id mysql
uid=997(mysql) gid=995(mysql) groups=995(mysql)

准备安装包

[root@localhost ~]# tar xvf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/
[root@localhost local]# ln -s mariadb-10.2.15-linux-x86_64/ mysql
[root@localhost local]# chown -R root:root mysql/

配置环境变量

[root@localhost ~]# echo PATH=/usr/local/mysql/bin:$PATH > /etc/profile.d/mysql.sh
[root@localhost ~]# . /etc/profile.d/mysql.sh
[root@localhost ~]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

配置mariadb数据目录

[root@localhost ~]# mkdir /data/mysqldb -p
[root@localhost ~]# chown mysql.mysql /data/mysqldb
[root@localhost ~]# ll -d /data/mysqldb/
drwxr-xr-x 2 mysql mysql 6 Jan 27 02:38 /data/mysqldb/
[root@localhost ~]# chmod 770 /data/mysqldb
[root@localhost ~]# ll -d /data/mysqldb
drwxrwx--- 2 mysql mysql 6 Jan 27 02:38 /data/mysqldb

初始化mariadb脚本

[root@localhost mysql]# pwd
/usr/local/mysql
[root@localhost mysql]# scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql
Installing MariaDB/MySQL system tables in '/data/mysqldb' ...
OK To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands: './bin/mysqladmin' -u root password 'new-password'
'./bin/mysqladmin' -u root -h localhost.localdomain password 'new-password' Alternatively you can run:
'./bin/mysql_secure_installation' which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers. See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions. You can start the MariaDB daemon with:
cd '.' ; ./bin/mysqld_safe --datadir='/data/mysqldb' You can test the MariaDB daemon with mysql-test-run.pl
cd './mysql-test' ; perl mysql-test-run.pl Please report any problems at http://mariadb.org/jira The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

配置配置文件

[root@localhost mysql]# cp /etc/my.cnf{,.bak}
[root@localhost mysql]# cp support-files/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y
[root@localhost mysql]# vim /etc/my.cnf

注:修改sock文件路径后,应该修改文件权限,使mysql用户具有写的权限
建议不要进行修改,保持默认
[root@localhost ~]# setfacl -R -m u:mysql:rwx /usr/local/mysql/

配置启动脚本

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chkconfig --add mysqld
[root@localhost mysql]# service mysqld start
Starting mysqld (via systemctl): [ OK ]

验证mariadb

注:默认为空密码

mariadb安全配置

[root@localhost ~]# mysql_secure_installation

修改sock文件为初始目录

vim /etc/my.cnf

程序编译时初始配置

[root@localhost ~]# /usr/local/mysql/bin/mysqld --print-defaults
/usr/local/mysql/bin/mysqld would have been started with the following arguments:
--port=3306 --datadir=/data/mysqldb --socket=/tmp/mysql.sock --skip-external-locking --key_buffer_size=384M --max_allowed_packet=1M --table_open_cache=512 --sort_buffer_size=2M --read_buffer_size=2M --read_rnd_buffer_size=8M --myisam_sort_buffer_size=64M --thread_cache_size=8 --query_cache_size=32M --thread_concurrency=8 --log-bin=mysql-bin --server-id=1

重启服务

[root@localhost ~]# service mysqld restart
Restarting mysqld (via systemctl): [ OK ]

运行脚本

[root@localhost ~]# mysql_secure_installation

验证:

linux作业--第十周的更多相关文章

  1. linux作业--第十二周

    1.主从复制及主主复制的实现 2.xtrabackup实现全量+增量+binlog恢复库 3.MyCAT实现MySQL读写分离 4.ansible常用模块介绍

  2. linux作业--第八周

    1.创建私有CA并进行证书申请. 配置文件存放路径 /etc/pki/tls/openssl.cnf [ CA_default ] dir = /etc/pki/CA # Where everythi ...

  3. linux作业--第五周

    1.简述osi七层模型和TCP/IP五层模型 一.OSI参考模型 (1) OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO ...

  4. linux作业--第三周

    1.统计出/etc/passwd文件中其默认shell为非/sbin/nologin的用户个数,并将用户都显示出来 [root@localhost ~]# cat /etc/passwd | grep ...

  5. linux作业--第十一周

    1. 导入hellodb.sql生成数据库 (1) 在students表中,查询年龄大于25岁,且为男性的同学的名字和年龄 (2) 以ClassID为分组依据,显示每组的平均年龄 (3) 显示第2题中 ...

  6. linux作业--第七周

    1.解决DOS攻击生产案例:根据web日志或者或者网络连接数,监控当某个IP 并发连接数或者短时内PV达到100,即调用防火墙命令封掉对应的IP,监控频率每隔5分钟.防火墙命令为:iptables - ...

  7. linux作业--第六周

    1.编写脚本实现登陆远程主机.(使用expect和shell脚本两种形式). #expect方式 yum -y install expect vim remote_ssh.sh #!/usr/bin/ ...

  8. 2017-2018-1 20179205《Linux内核原理与设计》第十周作业

    <Linux内核原理与设计>第十周作业 教材17.19.20章学习及收获 1.在Linux以及所有unix系统中,设备被分为以下三种:块设备(blkdev)以块为单位寻址,通过块设备节点来 ...

  9. 20155326 第十周课下作业-IPC

    20155326 第十周课下作业-IPC 学习题目: 研究Linux下IPC机制:原理,优缺点,每种机制至少给一个示例,提交研究博客的链接 共享内存 管道 FIFO 信号 消息队列 学习过程 -IPC ...

随机推荐

  1. CEH v8~v11 Module Slides 和 Lab Manual 下载

    课程内容 CEH v8 01 Introduction to Ethical Hacking CEH v8 02 Footprinting and Reconnaissance CEH v8 03 S ...

  2. 封装jar问题java.lang.SecurityException: Invalid signature file digest for Manifest main attributes以及maven依赖重提解决

    1.jar包封装完成后,其他项目引用jar,启动时报错java.lang.SecurityException: Invalid signature file digest for Manifest m ...

  3. git merge -ff --no-ff --squash 的区别

    感谢原文作者:futureme 原文链接:https://www.cnblogs.com/taylorluo/articles/10810762.html git merge #没有参数(默认为–ff ...

  4. linux 设置connect 超时

    转载请注明来源:https://www.cnblogs.com/hookjc/ 将一个socket 设置成阻塞模式和非阻塞模式,使用fcntl方法,即: 设置成非阻塞模式: 先用fcntl的F_GET ...

  5. Linux curl命令进行网络请求

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11841353.html 1. curl get请求: curl http://www.baid ...

  6. Spring Boot 2.x基础教程:使用tinylog记录日志

    tinylog简介 tinylog,与其他各种tiny开头的东西一样,是一个轻量级的开源日志解决方案.它本身只包含两个JAR文件(一个用于API,另一个用于实现),没有任何外部依赖关系.两个JAR文件 ...

  7. Solution -「JOISC 2020」「UOJ #509」迷路的猫

    \(\mathcal{Decription}\)   Link.   这是一道通信题.   给定一个 \(n\) 个点 \(m\) 条边的连通无向图与两个限制 \(A,B\).   程序 Anthon ...

  8. suse 12 二进制部署 Kubernetets 1.19.7 - 第06章 - 部署kube-apiserver组件

    文章目录 1.6.部署kube-apiserver 1.6.0.创建kubernetes证书和私钥 1.6.1.生成kubernetes证书和私钥 1.6.2.创建metrics-server证书和私 ...

  9. CentOS 7 升级 gcc-4.8.5 到 gcc-5.4.0

    文章目录 1.环境介绍 2.下载gcc-5.4.0源码包 3.编译安装gcc 4.验证gcc版本 5.更新gcc连接 1.环境介绍 [root@localhost ~]# gcc -v Using b ...

  10. Django的后台管理系统Admin(5)

    Django的后台管理系统就是为了方便管理员管理网站,所以django自带了一个后台管理系统,接下来记录一下如何使用这个后台的管理系统. 首先我们要进入后台管理系统,就要有一个管理员的账号,先来创建有 ...