一、windows安装mysql-server
链接:https://pan.baidu.com/s/1XmayX2KYUzRUsUv0bw_AVA
提取码:s85v
安装步骤
1、解压mysql-5.7.18-winx64.zip;
2、进入解压后的文件夹“mysql-5.7.18-winx64”,把startMysql.bat和stopMysql.bat到该文件夹下;
3、使用命令行进入“mysql-5.7.18-winx64\bin”目录;然后执行如下:
mysqld --initialize — 按回车
4、查看密码:进入“mysql-5.7.18-winx64\data**.err(类似后缀为err的文件)”查看里面的临时密码
5、双击“startMysql.bat”,启动mysql;
6、修改密码
回到命令行,输入 mysql -uroot -p ;出现密码后,输入刚刚查看的临时密码
–进入 mysql> 界面后输入如下命令:
SET PASSWORD FOR ‘root’@‘localhost’= PASSWORD(‘root’);
这时mysql就安装并修改了root帐号的密码为root了。
注意事项
在使用ZIP安装时,安装好之后默认是没有my.ini配置文件的,且在电脑的服务里面是找不到mysql的服务,每次都需要自己手动启动mysql,那如何解决呢,按照下面步骤。
1.删除MySql服务
到mysql程序下的bin文件夹cmd输入
D:\MySql\bin>sc delete MySql
2.新建my.ini配置文件
在mysql程序的根目录下,新建一个my.ini空白文件,用记事本打开,将以下内容复制进去,保存:
[client]
port=3306
[mysql]
no-beep
# default-character-set=
[mysqld]
port=3306
# mysql根目录
basedir="D:\Program Files (x86)\mysql5.7\mysql-5.7.18-winx64\"
# 放所有数据库的data目录
datadir=D:\Program Files (x86)\mysql5.7\mysql-5.7.18-winx64\data
# character-set-server=
# 默认存储引擎innoDB
default-storage-engine=INNODB
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#日志输出为文件
log-output=FILE
# 是否开启sql执行结果记录,必须要设置general_log_file参数,日志的路径地址
# 即日志跟踪,1为开启,0为关闭
general-log=0
general_log_file="execute_sql_result.log"
# 配置慢查询,5.7版本默认为1
slow-query-log=1
slow_query_log_file="user-slow.log"
long_query_time=10
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#默认不开启二进制日志
#log-bin=mysql-log
#错误信息文件设置,会将错误信息放在data/mysql.err文件下
log-error=mysql.err
# Server Id.数据库服务器id,这个id用来在主从服务器中标记唯一mysql服务器
server-id=1
#lower_case_table_names: 此参数不可以动态修改,必须重启数据库
#lower_case_table_names = 1 表名存储在磁盘是小写的,但是比较的时候是不区分大小写
#lower_case_table_names=0 表名存储为给定的大小和比较是区分大小写的
#lower_case_table_names=2, 表名存储为给定的大小写但是比较的时候是小写的
lower_case_table_names=1
#限制数据的导入导出都只能在Uploads文件中操作,这个是在sql语句上的限制。
#secure-file-priv="D:\AppServ\mysql-5.7.23/Uploads"
#值为null ,也就是注释掉这个参数或者secure-file-priv=null。表示限制mysqld 不允许导入|导出
#值为/tmp/ ,即secure-file-priv="/tmp/" 表示限制mysqld 的导入|导出只能发生在/tmp/目录下
#没有具体值时,即secure-file-priv= 表示不对mysqld 的导入|导出做限制
# 最大连接数
max_connections=151
# 打开表的最大缓存数
table_open_cache=2000
# tmp_table_size 控制内存临时表的最大值,超过限值后就往硬盘写,写的位置由变量 tmpdir 决定
tmp_table_size=16M
# 每建立一个连接,都需要一个线程来与之匹配,此参数用来缓存空闲的线程,以至不被销毁,
# 如果线程缓存中有空闲线程,这时候如果建立新连接,MYSQL就会很快的响应连接请求。
# 最大缓存线程数量
thread_cache_size=10
#*** MyISAM Specific options MyISAM引擎的配置
# MySQL重建索引时所允许的最大临时文件的大小
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=8M
read_buffer_size=0
read_rnd_buffer_size=0
#*** INNODB Specific options InnoDB存储引擎的配置
# InnoDB表的目录共用设置。没有在 my.cnf 进行设置,InnoDB 将使用MySQL的 datadir 目录为缺省目录。
# 如果设定一个空字串,可以在 innodb_data_file_path 中设定绝对路径
#innodb_data_home_dir=
# 通常设置为 1,意味着在事务提交前日志已被写入磁盘, 事务可以运行更长以及服务崩溃后的修复能力。
# 如果你愿意减弱这个安全,或你运行的是比较小的事务处理,可以将它设置为 0 ,以减少写日志文件的磁盘 I/O。
innodb_flush_log_at_trx_commit=1
# InnoDB 将日志写入日志磁盘文件前的缓冲大小
innodb_log_buffer_size=1M
# InnoDB 用来高速缓冲数据和索引内存缓冲大小。
innodb_buffer_pool_size=8M
innodb_log_file_size=48M
# InnoDB 会试图将 InnoDB 服务的使用的操作系统进程小于或等于这里所设定的数值。默认为8
innodb_thread_concurrency=9
innodb_autoextend_increment=64
innodb_buffer_pool_instances=8
innodb_concurrency_tickets=5000
innodb_old_blocks_time=1000
innodb_open_files=300
innodb_stats_on_metadata=0
innodb_file_per_table=1
innodb_checksum_algorithm=0
back_log=80
flush_time=0
join_buffer_size=256K
max_allowed_packet=20M
max_connect_errors=100
open_files_limit=4161
sort_buffer_size=256K
table_definition_cache=1400
binlog_row_event_max_size=8K
sync_master_info=10000
sync_relay_log=10000
sync_relay_log_info=10000
修改一下,这两个参数
3.重新生成data文件
删除之前生成的data文件,如果有重要的数据表,请先备份好。
回到cmd(mysql的bin目录下),重新生成data文件。运行:
D:\MySql\bin>mysqld --initialize-insecure --user=mysql
4. 重新安装mysql服务,同时绑定my.ini配置文件
安装MySql服务,同时设置绑定my.ini配置文件。命令:
MySql80,是我自己起的服务名称,根据版本来随意起名
”…\my.ini“是新建的配置文件的位置,也可以写成绝对路径”D:\MySql\my.ini“。
D:\MySql\bin>mysqld --install “MySql80” --defaults-file=“d:/mysql/my.ini”
此时,如果提示安装成功,这时打开电脑的”服务“窗口,可以找到新添加的MySql80服务:
5.修改密码
此时上面按照mysql的时候设置的密码就失效了(删除了data文件和服务之后,之前的密码就失效了,所以需要重新设置密码。),现在密码默认为空。
输入下面:
D:\MySql\bin>mysql -u root -p
这时密码为空,不需要填写,直接回车:
就去之后敲
SET PASSWORD FOR ‘root’@‘localhost’= PASSWORD(‘root’);
密码设置成功
二、linux安装mysql-server
https://blog.csdn.net/LC_Liangchao/article/details/121974461
三、注意
- centos7 上mysql安装完成后,不能用service mysqld start启动,同时也不能用service mysqld stop 停止
解决办法:
先 find / -name mysql.server
发现在以下路径 /usr/share/mysql/mysql.server
----
所以用下面的命令:
/usr/share/mysql/mysql.server start 可以启动成功
用/usr/share/mysql/mysql.server stop 可以关闭成功
- 对于生产环境的数据库,我们不建议开通3306端口
(sudo ufw delete allow 33606 防火墙禁用3306端口)
但是如果为了方便操作开通3306端口但是外部navicat用只读用户连接或者使用ssl连接
- 创建只读用户
1.使用现有的root用户登录到mysql
//mysql -p端口 -h主机名/ip -uroot -p密码
mysql -u root -p密码
2.创建用户,并授权select查询权限,授权远程访问权限
若要限制仅指IP可以使用此用户访问mysql,将%改为IP即可
grant select on *.* to 'username'@'%' identified by 'password';
3.刷新mysql权限,使用用户创建,授权生效
flush privileges;
4.查看当前数据库有哪些用户
select user,host from mysql.user;
- ssl连接: