目录
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/bin export 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
以上
MySql
就在本地安装完成了 !!!
数据库管理(两种形式)
- 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 # 服务端使用的字符集默认为UTF8 character-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=3306 default-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 --console 2024-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 22556 2024-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/tfKjvP6sDu 2024-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