在linux下搭建MySQL5.6和MySQL5.7_linux 安装 mysql5.6 mysql5.7-程序员宅基地

MySQL5.6与MySQL5.7的搭建有一些不一样。请读者仔细阅读笔者搭建的过程,如发现错误,请反馈给我,让我们共同学习和进步,共同在DT这一条道路上越走越远。向每一位读者执意诚挚的敬意。

(*).OS环境:Red Hat  Enterprise Linux 7.4 

(*).数据库版本:MySQL 5.6.37 和MySQL5.7.19

一、MySQL5.6的单实例搭建

新建software目录

mkdir /software

用Xftp5 上传MySQL5.6 到/software下

1.创建家目录(basedir):

mkdir -p /usr/local/

把软件上传到/usr/local/目录下进行解压

[root@localhost software]# tar -zxvf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

为了方便,同时不让人看清所用的产品版本,保证商业的机密性。然后把 mysql-5.6.37-linux-glibc2.12-x86_64 更名为mysql

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

添加mysql用户

[root@localhost local]# useradd mysql

最后授权mysql

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

查看授权情况

2.创建数据目录(datadir):

       mkdir -p /data/mysql3306

对数据目录授权

[root@localhost data]# chown mysql:mysql -R data/mysql3306   授权  mysql

查看授权情况

3.修改配置文件:vi /etc/my3306.cnf

##################### mysql5.6 配置文件#############################################

[client]

port = 3306

socket = /tmp/mysql.sock

#default-character-set=utf8

 [mysql]

#default-character-set=utf8

 

[mysqld]

port = 3306

socket = /tmp/mysql.sock

basedir = /usr/local/mysql

datadir = /data/mysql

open_files_limit    = 3072

back_log = 103

max_connections = 512

max_connect_errors = 100000

table_open_cache = 512

external-locking = FALSE

max_allowed_packet = 128M

sort_buffer_size = 2M   

join_buffer_size = 2M  

thread_cache_size = 51

query_cache_size = 32M  

tmp_table_size = 96M    

max_heap_table_size = 96M

slow_query_log = 1

slow_query_log_file = /data/mysql3306/slow.log

log-error = /data/mysql3306/error.log

long_query_time = 0.05

server-id = 1233306

log-bin = /data/mysql3306/mysql-bin

sync_binlog = 1

binlog_cache_size = 4M

max_binlog_cache_size = 128M

max_binlog_size = 1024M

expire_logs_days = 7

key_buffer_size = 32M

read_buffer_size = 1M

read_rnd_buffer_size = 16M

bulk_insert_buffer_size = 64M

character-set-server=utf8

default-storage-engine=InnoDB

binlog_format=row

 

#gtid_mode=on

#log_slave_updates=1

#enforce_gtid_consistency=1

 

interactive_timeout=100

wait_timeout=100

 

 

transaction_isolation = REPEATABLE-READ

innodb_additional_mem_pool_size = 16M

innodb_buffer_pool_size = 1434M

innodb_data_file_path = ibdata1:1024M:autoextend

innodb_flush_log_at_trx_commit = 1

innodb_log_buffer_size = 16M

innodb_log_file_size = 256M

innodb_log_files_in_group = 2

innodb_max_dirty_pages_pct = 50

innodb_file_per_table = 1

innodb_locks_unsafe_for_binlog = 0

[mysqldump]

quick

max_allowed_packet = 32M

4.初始化数据

cd /usr/local/mysql/scripts

执行./mysql_install_db 这个脚本

./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql 3306--defaults-file=/etc/my3306.cnf  --user=mysql

注意:出现两个OK代表MySQL5.6初始化成功

 

查看初始化mysql生成的文件

cd /data/mysql3306/  

5.启动mysql服务

/usr/local/mysql/bin/mysqld_safe  --defaults-file=/etc/my3306.cnf  --user=mysql &

查看mysql是否启动成功

 [root@localhost bin]# ps -ef|grep mysql

6.同时:可以设置开机自启动MySQL服务

由于CentOS 6 和CentOS 7 设置开机自启动有一点儿不一样,故首先查看操作系统版本

cat /proc/version

6.1 CentOS 7或者Red Hat 7可以设置mysql开机自启动

vim /usr/lib/systemd/system/mysql.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_safe --defaults-file=/etc/my3306.cnf --user=mysql

LimitNOFILE = 5000

启动MySQL 服务

systemctl start mysql.service

设置开机自启动

systemctl enable mysql.service

6.2 CentOS 6 和 Red Hat 7可以设置mysql开机自启动

vim /etc/rc.local

在最后一行加上

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3306.cnf --user=mysql &

7.修改环境变量

在文件 vim /etc/profile 添加 export PATH=$PATH:/usr/local/mysql/bin

并且要让环境变量生效  

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

8.添加MySQL数据密码

直接输入mysql 进入库中(全量路径)

在MySQL5.6中查看mysql 的信息

mysql> show databases;

mysql> use mysql;

mysql> select host,user,Password from user;

这里面有六条信息,我们只需要保留root和localhost即保留第一行

mysql> delete from user where host!='localhost' or user!='root';

mysql> select host ,password,user from user;

我们查询发现,Szzx.888变成了暗文加密的形式

注意:修改完密码后一定要刷新权限 

只有这样以后进入库中才会需要密码,并且密码生效

mysql> flush privileges;

退出mysql数据库,再次输入mysql 发现不能进去了,则代表密码添加成功

输入密码Szzx.888就进入了mysql

[root@localhost ~]# mysql -uroot -p

Enter password:           

注意:以上的只能用于本地root登录数据库,不能远程登录数据库

9.添加MySQL root用户远程连接

mysql> use mysql;

mysql> update user set host=’%’ where user=’root’;

注意:一定要刷新权限

mysql> flush privileges;

再次查看MySQL的用户连接情况

这种结果表明可以用root 用户进行远程连接操作

 

 

二、MySQL 5.7单实例搭建

1.创建家目录(basedir):

mkdir -p /usr/local/

把软件上传到/usr/local/目录下进行解压

[root@localhost software]# tar -zxvf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

然后把 mysql-5.7.19-linux-glibc2.12-x86_64 更名为mysql

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

添加mysql用户并对mysql用户授权

[root@localhost local]# useradd mysql

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

2.创建数据目录(datadir):

mkdir -p /data/mysql

cd /data/mysql

[root@localhost mysql]# cd ..

授权  mysql(一定要级联授权)

[root@localhost data]# chown mysql:mysql -R mysql    

 

3、配置文件:  vi /etc/my.cnf

[client]

port = 3306

socket = /data/mysql/mysql.sock

 

[mysql]

prompt="\u@db \R:\m:\s [\d]> "

no-auto-rehash

 

[mysqld]

user = mysql

port = 3306

basedir = /usr/local/mysql

datadir = /data/mysql/

socket = /data/mysql/mysql.sock

pid-file = db.pid

character-set-server = utf8mb4

skip_name_resolve = 1

open_files_limit    = 65535

back_log = 1024

max_connections = 512

max_connect_errors = 1000000

table_open_cache = 1024

table_definition_cache = 1024

table_open_cache_instances = 64

thread_stack = 512K

external-locking = FALSE

max_allowed_packet = 32M

sort_buffer_size = 4M

join_buffer_size = 4M

thread_cache_size = 768

query_cache_size = 0

query_cache_type = 0

interactive_timeout = 600

wait_timeout = 600

tmp_table_size = 32M

max_heap_table_size = 32M

slow_query_log = 1

slow_query_log_file = /data/mysql/slow.log

log-error = /data/mysql/error.log

long_query_time = 0.1

server-id = 3306101

log-bin = /data/mysql/mybinlog

sync_binlog = 1

binlog_cache_size = 4M

max_binlog_cache_size = 1G

max_binlog_size = 1G

expire_logs_days = 7

gtid_mode = on

enforce_gtid_consistency = 1

log_slave_updates

binlog_format = row

relay_log_recovery = 1

relay-log-purge = 1

key_buffer_size = 32M

read_buffer_size = 8M

read_rnd_buffer_size = 4M

bulk_insert_buffer_size = 64M

 

lock_wait_timeout = 3600

explicit_defaults_for_timestamp = 1

innodb_thread_concurrency = 0

innodb_sync_spin_loops = 100

innodb_spin_wait_delay = 30

 

transaction_isolation = REPEATABLE-READ

#innodb_additional_mem_pool_size = 16M

innodb_buffer_pool_size = 1024M

innodb_buffer_pool_instances = 8

innodb_buffer_pool_load_at_startup = 1

innodb_buffer_pool_dump_at_shutdown = 1

innodb_data_file_path = ibdata1:1G:autoextend

innodb_flush_log_at_trx_commit = 1

innodb_log_buffer_size = 32M

innodb_log_file_size = 2G

innodb_log_files_in_group = 2

innodb_max_undo_log_size = 4G

 

innodb_io_capacity = 4000

innodb_io_capacity_max = 8000

innodb_flush_neighbors = 0

innodb_write_io_threads = 8

innodb_read_io_threads = 8

innodb_purge_threads = 4

innodb_page_cleaners = 4

innodb_open_files = 65535

innodb_max_dirty_pages_pct = 50

innodb_flush_method = O_DIRECT

innodb_lru_scan_depth = 4000

innodb_checksum_algorithm = crc32

innodb_lock_wait_timeout = 10

innodb_rollback_on_timeout = 1

innodb_print_all_deadlocks = 1

innodb_file_per_table = 1

innodb_online_alter_log_max_size = 4G

internal_tmp_disk_storage_engine = InnoDB

innodb_stats_on_metadata = 0

 

innodb_status_file = 1

 

innodb_status_output = 0

innodb_status_output_locks = 0

 

performance_schema = 1

performance_schema_instrument = '%=on'

 

innodb_monitor_enable="module_innodb"

innodb_monitor_enable="module_server"

innodb_monitor_enable="module_dml"

innodb_monitor_enable="module_ddl"

innodb_monitor_enable="module_trx"

innodb_monitor_enable="module_os"

innodb_monitor_enable="module_purge"

innodb_monitor_enable="module_log"

innodb_monitor_enable="module_lock"

innodb_monitor_enable="module_buffer"

innodb_monitor_enable="module_index"

innodb_monitor_enable="module_ibuf_system"

innodb_monitor_enable="module_buffer_page"

innodb_monitor_enable="module_adaptive_hash"

 

[mysqldump]

quick

max_allowed_packet = 32M

 

4、添加环境变量

vi  ~/.bash_profile

在里面添加如下内容

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

同时,生效环境变量
source  ~/.bash_profile

5.初始化数据库:

cd  /usr/local/mysql/bin/

./mysqld  --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql/ --initialize-insecure

启动MySQL

 ./mysqld_safe --defaults-file=/etc/my.cnf &

[root@localhost bin]# ./mysql

在MySQL5.7中修改密码为123123

use mysql;

 [mysql]> SET PASSWORD=PASSWORD('123123');

[mysql]> flush privileges;

[root@localhost ~]# mysql -uroot -p

Enter password:                      输入密码123123就进入了mysql

 

 

查看MySQL的用户,密码

select host,user,authentication_string from mysql.user;

注意:此root 用户只能是本地连接

6.添加MySQL  root用户远程登录

mysql> use mysql;

mysql> update user set host=’%’ where user=’root’;

注意:一定要刷新权限

查看结果

select host,user,authentication_string from mysql.user;

mysql> flush privileges;


这种结果表示修改成功,可以远程操作数据库。

 

三、MySQL 5.6 和 MySQL 5.7安装的比较

MySQL 5.6:初始化数据时需要进到家目录的 script 目录下

执行:/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ 

--datadir=/data/mysql --defaults-file=/etc/my.cnf --user=mysql

注意:此数据库的密码为空。

MySQL 5.7:初始化数据时需要进到家目录的 bin 目录下

执行:/usr/local/mysql/bin/mysqld  --user=mysql --datadir=/data/mysql 

--basedir=/usr/local/mysql/ --initialize

显然已经废弃了使用 mysql_install_db 这个命令进行初始化数据的操作了。

注意:--initialize 会自动生成随机密码在 error log 里面。如果加  --initialize-insecure 表示 密码为空

 

 

 

 

 

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/liuzhuang2017/article/details/81169993

智能推荐

Deepin20.2.4安装Nvidia驱动教程_deepin安装nvidia驱动-程序员宅基地

文章浏览阅读1.3w次,点赞6次,收藏51次。Deepin20.2.4安装Nvidia驱动教程在安装Deepin系统的时候,“安装Nvidia闭源驱动”不要勾选。一、安装Deepin显卡驱动管理器直接通过深度应用商店搜索安装即可,安装后切换为“使用Inter默认驱动”。二、删除并禁用NVIDIA开源驱动Nouveau由于我们在安装Deepin的时候没有选择“安装Nvidia闭源驱动”,故该步骤可以省略。sudo apt autoremove nvidia-*接下来我们需要编辑blacklist文件来禁用Nouveau:sudo de_deepin安装nvidia驱动

mybatisplus模糊查询中文时 有数据但 like查不到_gis模糊查询like用不了-程序员宅基地

文章浏览阅读1.2k次。mybatisplus模糊查询中文时 有数据但 like查不到原因是数据库的配置没有配置UTF-8_gis模糊查询like用不了

程序员职业发展路线图(完整版+珍藏版)_程序员职业规划路线-程序员宅基地

文章浏览阅读1.2w次,点赞9次,收藏34次。从整体上看,程序员的职业发展可以分为 4 条路线,分别是工作、SOHO、创业和投资,它们的难度逐次递增,人生阶层也逐次递增。当然这个路线也不是固定的,可能随时切换,比如你放弃了工作可以 SOHO,你创业失败了可以继续工作。除了程序员,基本所有职业的发展路线都可以分为这 4 种。我们先给出程序员职业发展的详细路线图,并把它们放在不同的象限中,然后再详细说明一下各个方向。注:此图改编自《程序员必读的职业规划书》中分享的一张图1. 工作这是大部分程序员都会选择的职业发展路线,即使那些功成名就的程序员,_程序员职业规划路线

MySQL AVG()异常NULL值_avg null-程序员宅基地

文章浏览阅读6k次。mysql 在计算avg() 时 会自动将null值过滤掉不参与计算,因为NULL与数字不同0。从概念上讲,它NULL意味着“缺失的未知值”,并且与其他值的处理方式略有不同。这就是像ignore s 这样的聚合函数。AVG()NULLAVG()仅计算所有已知值的平均值。(=不是NULL =未知)来自MySQL文档:除非另有说明,否则组函数会忽略NULL值。另外,请阅..._avg null

网络链接错误,请检查配置后重试!_ce1启动操作超时,请检查与服务器的链接后重试-程序员宅基地

文章浏览阅读1.2w次。今天上午,我编辑文章时,发现不能正常上传图片了一开始感觉很奇怪,因为昨天我用着还正常,想到昨天我对我的电脑的安全环境进行了全面的检查和修复,感觉是因为我的电脑环境的问题。百度了一下,答案有很多,大都是建议修改ueditor编辑器的配置,或者检查一下服务器的文件目录的权限设置。查看一下服务器目录文件的权限设置,没发现什么问题。至于修改网站程序,我感觉不是太靠谱,先排查一下吧。我用ftp打开网站空间,..._ce1启动操作超时,请检查与服务器的链接后重试

【TCN回归预测】TCN时间卷积神经网络数据回归预测(多输入单输出)【含Matlab源码 2317期】_时间卷积神经网络(tcn)输入层-程序员宅基地

文章浏览阅读1.1k次。TCN时间卷积神经网络数据回归预测(多输入单输出)完整的代码,方可运行;可提供运行操作视频!适合小白!_时间卷积神经网络(tcn)输入层

随便推点

转:针对多点触控浏览器进行的开发-程序员宅基地

文章浏览阅读277次。[url=http://select.yeeyan.org/view/213582/202991]针对多点触控浏览器进行的开发[/url]在本文中,我会深入研究iOS和Android设备提供的触摸事件API,探索一下可以构建哪些类型的应用,给出一些最佳做法,并论及一些使得可触控应用(touch-enabled application)的开发变得更加容易的有用技术。前言诸如智能手..._ubuntu 多点触控开发

程序员吐槽:公司开源节流要求降薪,网友:一石三鸟啊!_开源节流吐槽-程序员宅基地

文章浏览阅读385次。一公司领导通知员工公司准备对全体员工做出降薪30%的决定,对此该公司员工表示不同意,一名程序员发帖怒怼:为了不让领导做如此艰难的决定,所以本人表示拒绝。2018年受金融大环境的影响,众多企业不可避免的进入了行业低迷期,这一年对我们来说,也是无比艰难,困难重重。为了尽快走出困境,公司只能开源节流,降低各项成本与开支。结合公司现状,也考虑到总体行业不景气,再就业困难等实际情况,公司领导做出了非常艰..._开源节流吐槽

用户画像很全的一篇指南-程序员宅基地

文章浏览阅读2.8k次。关于昨天的送书活动,已经在截止时间进行了截图(请直接拉到文末),以下点赞top5的同学请加我微信哈(后台输入“好友”即可获取方式),若明天中午前未添加好友就会顺位下一位朋友哈~导读:在互..._日全量表

CentOS安装Jdk并配置环境变量-程序员宅基地

文章浏览阅读287次。环境CentOS7.2 (安装镜像CentOS-7-x86_64-DVD-1611)目标在CentOS7.2上安装jdk1.8(tar.gz安装包),并配置环境变量jdk安装在/home/soft/jdk1.8.0-111目录下执行步骤1、检查和删除系统预装jdk//如果操作系统不是最小安装,会默认安装openjdk#rpm -qa |..._export java_home=/home/你的 户名/software/jdk1.8.0_77用法

对抗物联网网络威胁_物联网场景下弱网对抗(1)-程序员宅基地

文章浏览阅读913次,点赞8次,收藏25次。你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

分享一个好看的vs主题_vscode插件nightowl-程序员宅基地

文章浏览阅读1.2k次,点赞72次,收藏62次。使用这个主题注释的颜色会有点浅不好看清,可以再字体和颜色里修改一下注释的颜色,改成绿色挺好看清。更换完主题后就可以享受自己的全新vs了(外貌全新)。主题的名字叫NightOwl,和vscode的主题颜色挺像的。操作方法也十分简单,首先我们先在最上面哪一行找到扩展。安装完毕后在最上方那一栏找到工具选项(就在扩展左边),点击最下面的选项。最近发现了一个很好看的vs主题(个人认为挺好看的),想要分享给大家。然后点击管理扩展,再搜索栏上搜索NightOwl,下载这个插件。然后就可以更换主题了。_vscode插件nightowl