MySQL5.7详解安装配置 步骤1:下载安装 可以去mysql的官网下载,也可以直接下载小落上传到CSDN的资源
官网下载地址:https://dev.mysql.com/downloads/installer/
本博客使用64位免安装版进行演示。
步骤2:解压并配置环境变量 将下载后的安装包解压,C:\Program Files\MySQL\MySQL Server 5.7
配置环境变量,在计算机上点击右键---》属性---》高级系统设置---》环境变量
在环境变量Path中添加: C:\Program Files\MySQL\MySQL Server 5.7\bin; 然后确定保存。
然后进入MySQl的解压缩目录中的bin文件夹,并在其中创建my.ini配置文件。
用记事本打开该文件,并写入如下内容:
# MySQL配置
# MySQL配置
[client]
# MySQL客户端端口
port=3306
[mysql]
# MySQL默认字符集编码
default-character-set=utf8
[mysqld]
# MySQL端口
port=3306
# MySQL安装路径
basedir="E:/JAVAStudy/mysql"
# MySQL数据库文件路径
datadir="E:/JAVAStudy/mysql/data/"
# MySQL数据库默认编码
character-set-server=utf8
# 表存储引擎方式 INNODB与MyISAM两种
default-storage-engine=MyISAM
# SQL验证模式
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# 最大连接数
max_connections=512
# MySQL查询缓存
query_cache_size=0
# 高速缓存的大小
table_cache=256
# 内存表的大小
tmp_table_size=18M
# 最大连接线程数
thread_cache_size=8
# 重建索引时所允许的最大临时文件的大小
myisam_max_sort_file_size=64G
# MyISAM表发生变化时重新排序所需的缓冲
myisam_sort_buffer_size=35M
# 索引缓冲区的大小
key_buffer_size=25M
# 内存缓冲区大小
read_buffer_size=64K
# 随机读缓冲区大小
read_rnd_buffer_size=256K
# 排序缓冲区大小
sort_buffer_size=256K
# InnoDB存储引擎用来存放数据字典信息以及一些内部数据结构的内存空间大小
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=47M
innodb_log_file_size=24M
innodb_thread_concurrency=8
log_bin=on
####################主从服务器配置##########################
# server-id=1 #数据库唯一ID,主从的标识号绝对不能重复。
# log-bin=mysql-bin #开启bin-log,并指定文件目录和文件名前缀
# binlog-do-db=huanqiu #需要同步的数据库。如果是多个同步库,就以此格式另写几行即可。如果不指明对某个具体库同步,就去掉此行,表示同步所有库(除了ignore忽略的库)。
# binlog-ignore-db=mysql #不同步mysql系统数据库。如果是多个不同步库,就以此格式另写几行;也可以在一行,中间逗号隔开。
# sync_binlog = 1 #确保binlog日志写入后与硬盘同步
# binlog_checksum = none #跳过现有的采用checksum的事件,mysql5.6.5以后的版本中binlog_checksum=crc32,而低版本都是binlog_checksum=none
# binlog_format = mixed #bin-log日志文件格式,设置为MIXED可以防止主键重复。
#############################################################
############################################################# 步骤3:初始化配置 在安装目录键入cmd然后回车
键入mysqld --initialize --user=mysql --console 回车,该语句的作用的初始化数据库信息
这个步骤会生成一个数据库的临时密码,后面的操作会用到。
键入 mysqld --install 安装服务
然后使用 net start mysql 命令启动mysql服务。
键入 mysql -uroot -p 然后输入上面生成的临时密码,
然后键入 set password for root@localhost = password('root'); 回车,即将root用户密码设置为root
还有另一种设置密码的方法
使用cmd进入mysql的安装目录后直接键入mysqladmin -u 用户名 -p password 密码 ,即可修改密码,其中用户名为所要修改的用户名,密码为新设置的密码。
步骤4:配置MySQL远程访问(可选) 使用 mysql -uroot -p 命令进入mysql后
键入 user mysql
然后输入 update user set host = '%' where user = 'root';
设置用户root使用密码root从任何主机连接到mysql服务器
键入 GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; 授权
刷新MySQL的系统权限相关表 flush privileges ; 然后使用工具测试远程访问配置是否成功。
同时可以使用语句 select user, host from user; 查询修改情况。 1.1源码安装MySQL-5.7 MySQL-5.7源码安装(编译)
下载并解压mysql-5.7.26.tar.gz
[root@centos7 ~]#tar xf mysql-5.7.26.tar.gz
[root@centos7 ~]#cd mysql-5.7.26/
#安装依赖包
[root@centos7 mysql-5.7.26]#yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf openssl openssl-devel
#安装boots
[root@centos7 mysql-5.7.26]#
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
[root@centos7 mysql-5.7.26]# tar xf boost_1_59_0.tar.gz -C /usr/local
#cmake一下
[root@centos7 mysql-5.7.26]# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.26 \
-DMYSQL_DATADIR=/usr/local/mysql-5.7.26/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.7.26/tmp/mysql.sock \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-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=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0
[root@centos7 mysql-5.7.26]# make && make install
创建mysql用户
[root@centos7 data]# useradd -r -s /sbin/nologin -d /data/mysql mysql
#创建数据存放目录
[root@centos7 mysql-5.7.26]# cd /usr/local
[root@centos7 /usr/local]# ln -s /usr/local/mysql-5.7.26 /usr/local/mysql
[root@centos7 /usr/local]# mkdir /usr/local/mysql-5.7.26/{data,tmp}
[root@centos7 /usr/local]# touch /var/log/mysqld.log
[root@centos7 /usr/local]# chown -R mysql.mysql /usr/local/mysql-5.7.26
[root@centos7 /usr/local]# chown -R mysql.mysql /var/log/mysqld.log
#初始化
[root@centos7 /usr/local]#/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#参数介绍:
--initialize-insecure #不安全初始化,即没有密码。
--initialize #安全初始化,会自动生成临时密码。在log-error里,查询 temporary password
--user=mysql #初始化用户
--basedir=/service/mysql #软件安装目录
--datadir=/service/mysql/data #数据存放位置
#编辑配置文件
[root@centos7 /usr/local]# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/usr/local/mysql/tmp/mysql.sock
character-set-server=utf8mb4
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/tmp/mysqld.pid
[mysql]
socket=/usr/local/mysql/tmp/mysql.sock
[client]
socket=/usr/local/mysql/tmp/mysql.sock
#加入systemd管理
[root@centos7 /usr/local]# cp mysql/support-files/mysql.server /etc/init.d/mysqld
[root@centos7 /usr/local]# 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=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
[root@centos7 /usr/local]# systemctl daemon-reload
[root@centos7 /usr/local]# systemctl start mysqld
#查询默认初始密码
[root@centos7 /usr/local]# grep 'temporary password' /var/log/mysqld.log
2021-09-24T01:38:06.444154Z 1 [Note] A temporary password is generated for root@localhost: z8oqda0;
添加PATH环境变量
[root@centos7 data]# echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@centos7 data]# . /etc/profile.d/mysql.sh
#添加PATH后,测试连接
[root@centos7 /usr/local]# mysql -uroot -p
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
yp这里没有找到密码怎么办
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
⒈打开配置文件/etc/my.cnf,然后在里面找到 [mysqld] 这一项,然后在该配置项下添加skip-grant-tables 这个配置,然后保存文件。
⒉重启mysql服务:systemctl restart mysqld
⒊接着就可以免密登录了:敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中。
⒋重置密码:
use mysql;
update user set authentication_string=password(‘password’) where user=‘root’ and host=‘localhost’;
flush privileges;
说明:执行sql语句的时候,如果出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement. 则需要先执行一下
flush privileges.
⒌退出mysql:quit
⒍重启mysql服务: service mysql restart