行业知识
MySQL安装使用(mac、windows)
目录
macOS环境
法一:包安装(比较简单)
1.下载
2. 环境配置
3. 启动服务
4. 安全设置
5. 启动mysql
法二:官方下载MySQL
1.下载
2.环境变量
3. 启动 MySql
4. 初始化密码设置
windows环境
一、下载
二、 环境配置
三、安装mysql
1.初始化mysql
2.安装Mysql服务
3.更改密码
四、检验
1.查看默认安装的数据库
2.其他操作
配置mysql的远程连接
1.登录mysql
2.选择数据库
3. 修改权限
常见报错
macOS环境
法一:包安装(比较简单)
macOS12,安装 8.0版本
1.下载
brew install mysql@8.0
2. 环境配置
sudo vi ~/.zshrc
export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"export LDFLAGS="-L/usr/local/opt/mysql@8.0/lib"export CPPFLAGS="-I/usr/local/opt/mysql@8.0/include"export PKG_CONFIG_PATH="/usr/local/opt/mysql@8.0/lib/pkgconfig"
source ~/.zshrc
3. 启动服务
brew services start mysql@8.0
4. 安全设置
mysql_secure_installation
5. 启动mysql
mysql -u root -p
法二:官方下载MySQL
1.下载
打开 MySql 官方下载页面
我是macOS12,所以选择了8.0.30
下载完成之后,打开安装,一直下一步安装完成,在最后安装完成时,会弹出对话框,里面包含了 mysql 账号跟临时密码,需要拷贝出来记录一下,后面会用它进行登录以及修改为新的 mysql 密码:
root 就是账号,密码就是随机生成的这串,如果使用强密码就是自己输入的那个密码。
在新版本中会有 use strong password excryption 与 use legacy password excryption 选项
- use strong password encryption:使用强密码加密。mysql8 支持基于 SHA256 的更强的认证方式,所有新安装的 mysql server 建议使用这个方式。clients 或 connectors 如果不支持这个方式,就不能连接到这个 mysql server。
- use legacy password encryption:使用老式的密码加密,也就是上图中的。
- 配置 root 的密码,合理的密码规则为:至少8个字符,包含数字、字母、其他字符。
接着输入你的密码,用于登陆,切记!跟上面旧密码一样的,一定要记住记好了!
安装成功以后,可以使用命令行进行启动操作,也可以进入 系统偏好设置 中找到 Mysql 进行可视化启动!
2.环境变量
-
第一步 :在终端切换到根目录,编辑 ~/.bash_profile 或 ~/.zshrc 文件,也可以两个都加
-
$ vim ~/.bash_profile$ vim ~/.zshrc
-
# 辅助:查看 mysql 本地路径$ ps -ef|grep mysql# 辅助:如果两个配置文件不存在,可以手动创建$ cd ~$ touch .zshrc$ vim .zshrc# 辅助:如果不想走命令行的方式修改环境变量,也可以直接打开文件进行可视化修改,不支持 Linux 可视化$ open ~/.zshrc
第二步 :进入 vim 编辑环境。 按下 i 进入 insert 模式 ,输入
-
export PATH=$PATH:/usr/local/mysql/binexport PATH=$PATH:/usr/local/mysql/support-files
第三步 :按下 esc 退出 insert 模式,输入 :wq 保存配置文件。
-
:wq
第四步 :在终端界面下输入以下命令,让配置文件的修改生效,并查看环境变量是否设置成功
-
$ source ~/.bash_profile $ source ~/.zshrc$ echo $PATH
到这里环境变量就设置完成了,我们可以查看一下当前 mysql 的版本:
-
$ mysql -V
MySQL服务的启停和状态的查看
开启MySQL服务(需要输入电脑密码,不是数据库登录密码)sudo mysql.server start停止MySQL服务sudo mysql.server stop重启MySQL服务sudo mysql.server restart查看MySQL服务状态sudo mysql.server status
3. 启动 MySql
-
第一步 :启动 mysql 服务
sudo mysql.server start
启动如果报错 ERROR! The server quit without updating PID file (/usr/local/mysql/data/***.pid). 这边是因为安装了就默认启动了,已经有进程在了,所以报错,关掉重启就没问题了。还有别的原因也会这样,比如没有读写权限等。
查看进程
ps -ef|grep mysqld
杀进程
kill 端口号
kill -9 端口号
第二步 :启动成功后,登录 mysql
mysql -u root -p
4. 初始化密码设置
-
设置初始化密码,进入数据库 mysql 数据库之后执行下面的语句,设置当前 root 用户的密码为 123456 (密码设置你自己的,这里只是举例)。
-
set password = password('123456');回车,然后会提示设置成功。
退出 sql 界面
exit
-
数据库管理(两种形式)
- 1.MySQL Workbench
- 2.Navicat premium(指令练习)
windows环境
一、下载
1.下载解压
MySQL :: Download MySQL Community Server
下载后解压,存放到安装目录下
2.在【安装目录】内,新建 my.ini 空文件
可以先创建一个txt文件,另存为my.ini
输入以下内容(注意安装目录)
[mysql]# 设置 mysql 客户端默认字符集default-character-set=utf8[mysqld]#设置 3306 端口port = 3306# 设置 mysql 的安装目录basedir= C:\mysql\mysql-8.2.0-winx64# 设置 mysql 数据库的数据的存放目录datadir= C:\mysql\mysql-8.2.0-winx64\data# 允许最大连接数max_connections=200# 服务端使用的字符集默认为 8 比特编码的 latin1 字符集character-set-server=utf8# 创建新表时将使用的默认存储引擎default-storage-engine=INNODB
或者
[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=C:\mysql\mysql-8.2.0-winx64 # 切记此处一定要用双斜杠\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠# 设置mysql数据库的数据的存放目录datadir=C:\mysql\mysql-8.2.0-winx64\Data # 此处同上# 允许最大连接数max_connections=200# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统max_connect_errors=10# 服务端使用的字符集默认为UTF8character-set-server=utf8# 创建新表时将使用的默认存储引擎default-storage-engine=INNODB# 默认使用“mysql_native_password”插件认证default_authentication_plugin=mysql_native_password[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[client]# 设置mysql客户端连接服务端时默认使用的端口port=3306default-character-set=utf8
二、 环境配置
方便调用数据库,相当于一个快捷方式。
1 打开环境变量
按 win+q,输入“环境变量”,选择“编辑系统环境变量”,点击“环境变量”
2.新建系统变量 MYSQL_HOME
在下方的”系统变量“内,新建一个系统变量,变量名为 MYSQL_HOME ,变量值为【安装目录】,如图。
3.编辑 Path 变量
继续在“系统变量”找到变量名为 Path 的系统变量,新建一个新的环境变量 %MYSQL_HOME%\bin
三、安装mysql
1.初始化mysql
管理员运行cmd,进入bin路径下,输入
mysqld --initialize --console
执行完成后,会打印 root 用户的初始默认密码,比如:
C:\mysql\mysql-8.2.0-winx64\bin>mysqld --initialize --console2024-03-11T10:13:22.761487Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.2024-03-11T10:13:22.772911Z 0 [System] [MY-013169] [Server] C:\mysql\mysql-8.2.0-winx64\bin\mysqld.exe (mysqld 8.2.0) initializing of server in progress as process 225562024-03-11T10:13:22.777567Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.2024-03-11T10:13:22.805070Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.2024-03-11T10:13:23.985606Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.2024-03-11T10:13:27.977275Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: V/tfKjvP6sDu2024-03-11T10:13:33.448473Z 0 [System] [MY-015018] [Server] MySQL Server Initialization - end.C:\mysql\mysql-8.2.0-winx64\bin>
注意!执行输出结果里面有一段:[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: V/tfKjvP6sDu 其中root@localhost:后面的“V/tfKjvP6sDu”就是初始密码(不含首位空格)。在没有更改密码前,需要记住这个密码,后续登录需要用到。
2.安装Mysql服务
在MySQL安装目录的 bin 目录下执行命令:
mysqld --install [服务名]
后面的服务名可以不写,默认的名字为 mysql。当然,如果你的电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 mysql5 和 mysql8。
安装完成之后,就可以通过命令net start mysql启动MySQL的服务了。通过命令net stop mysql停止服务。通过命令sc delete MySQL/mysqld -remove卸载 MySQL 服务
3.更改密码
在MySQL安装目录的 bin 目录下执行命令:
mysql -u root -p
这时候会提示输入密码,记住了上面初始化步骤时的密码,填入即可登录成功,进入MySQL命令模式。
在MySQL中执行命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
修改密码,注意命令尾的;一定要有,这是mysql的语法
这样,安装部署就完成了 !!!
四、检验
1.查看默认安装的数据库
show databases;
use mysql;
show tables;
mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys |+--------------------+4 rows in set (0.02 sec)
mysql> use mysql;Database changed
mysql> show tables;+------------------------------------------------------+| Tables_in_mysql |+------------------------------------------------------+| columns_priv || component || db || default_roles || engine_cost || func || general_log || global_grants || gtid_executed || help_category || help_keyword || help_relation || help_topic || innodb_index_stats || innodb_table_stats || ndb_binlog_index || password_history || plugin|| procs_priv || proxies_priv || replication_asynchronous_connection_failover || replication_asynchronous_connection_failover_managed || replication_group_configuration_version || replication_group_member_actions || role_edges || server_cost || servers || slave_master_info || slave_relay_log_info || slave_worker_info || slow_log || tables_priv || time_zone || time_zone_leap_second || time_zone_name || time_zone_transition || time_zone_transition_type || user |+------------------------------------------------------+38 rows in set (0.01 sec)
2.其他操作
管理员root的host是localhost,代表仅限localhost登录访问。如果要允许开放其他ip登录,则需要添加新的host。如果要允许所有ip访问,可以直接修改成“%”
创建用户:
CREATE USER 'xxh'@'%' IDENTIFIED WITH mysql_native_password BY 'xxh123!@#';
#(需要注意:mysql8.0加密方式修改了)
#检查用户
select user, host, plugin, authentication_string from user\G;
授权远程数据库
#授权所有权限
GRANT ALL PRIVILEGES ON *.* TO 'xxh'@'%';
#授权基本的查询修改权限,按需求设置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'xxh'@'%';
查看用户权限
show grants for 'xxh'@'%';
查看密码加密方式:
select user, host, plugin, authentication_string from user;
另外,如果需要新增账户,或者本机以外的其他人访问MySQL则还需要设置内置账户的host,具体可以参考:MySQL创建用户与授权
配置mysql的远程连接
只有配置了远程连接,那么才可以远程访问
1.登录mysql
mysql -u root -p
2.选择数据库
展示数据库
show databases;
使用数据库
use mysql;
3. 修改权限
查询用户表中的root用户的权限
select host,user from user;
默认都是localhost,将root的改为%
修改用户表
update user set host='%' where user='root';
赋予所有权限
mysql 8用以下写法
grant all privileges on *.* to 'root'@'%';
不行的话试试
grant all privileges on root.* to 'root'@'%';
flush privileges;
再次查询用户表中的root用户的权限
exit;
常见报错
1.启动报错
mysql启动时报错:Starting MySQL… ERROR! The server quit without updating PID file
mac上mysql启动报错问题Unable to lock ./ibdata1 error: 35-CSDN博客
可能是/usr/local/mysql/data数据目录mysql用户没有权限(修改数据目录的权限)
查看
解决方法 :给予权限,执行 “chown -R mysql.mysql /usr/local/mysql/data” 然后重新启动mysqld
sudo chmod -R 777 /usr/local/mysql/data/
也可以直接到文件夹中设置文件夹的权限!!!!
前往/usr/local/etc目录,看是否有my.cnf这么个文件,如果没有就新建,然后输入lower_case_table_names=2,保存
ps -eaf | grep mysql
sudo kill -9 145
使用这种方式杀掉所有的mysql进程,再次重启mysql应该就可以了。
如果还不行,重点来了,执行如下命令:
sudo launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
MAC MySql 安装(详细步骤)_mac 安装mysql-CSDN博客
https://www.cnblogs.com/laumians-notes/p/9069498.html
-
-
-
-