1. 安装
brew search mysql
选择你要安装的MySQL版本,执行brew install mysql@x.x
2. 安装后的提示
We’ve installed your MySQL database without a root password.
(我们安装MySQL的时候没有设置root账户的密码。)
To secure it run:
(为了安全运行如下语句)
mysql_secure_installation
MySQL is configured to only allow connections from localhost by default
(MySQL被设置成:默认只允许本地主机localhost连接)
To connect run:
(要链接数据库运行如下命令)
mysql -uroot
mysql@5.7 is keg-only, which means it was not symlinked into /usr/local
,
because this is an alternate version of another formula.
(brew不会给你做symlink到/usr/local
,因为它是MySQL的另外一个版本)
If you need to have mysql@5.7 first in your PATH run:
(如果你需要mysql@5.7作为当前要使用的版本,就将它添加到环境路径中)echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
source ./.zshrc
For compilers to find mysql@5.7 you may need to set:
(要想让编译器找到mysql@5.7你需要以下设置:)
export LDFLAGS="-L/usr/local/opt/mysql@5.7/lib"
export CPPFLAGS="-I/usr/local/opt/mysql@5.7/include"
To have launchd start mysql@5.7 now and restart at login:
(要想启动和登陆时启动mysql@5.7,输入以下命令:)
brew services start mysql@5.7
Or, if you don’t want/need a background service you can just run:
(如果不想要后台服务,只需要运行下面预计:)
/usr/local/opt/mysql@5.7/bin/mysql.server start
3.启动MySQL@5.7
- 配置MySQL环境变量
echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.zshrc
source ./.zshrc
export LDFLAGS="-L/usr/local/opt/mysql@5.7/lib"
export CPPFLAGS="-I/usr/local/opt/mysql@5.7/include"
- 启动、停止等
mysql.server {start|stop|restart|reload|force-reload|status} [ MySQL server options ]
- 启动MySQL服务命令示例
4.相关问题注意
1、MySQL服务没有启动的情况下会报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
2、国内版安装的homebrew没有brew services功能,tap也不行。
3、注意你的brew版本,版本不同估计操作也有不同。
4、我的brew版本(brew -v
):Homebrew 2.7.2-76-gd75e9c9
Homebrew/homebrew-core (git revision 9e57e; last commit 2021-01-10)
Homebrew/homebrew-cask (git revision 76cbb; last commit 2021-01-10)
5.MySQL常用的命令行命令
注意:现在命令引入了反引号机制,所以输入的时候记住反引号的书写,不要告诉我啥叫反引号,就是这个
**
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘creat database test01
‘ at line 1
此报错为语法报错,creat命令错误,正确的是create;不带这个``(英文状态下输入)也会报错。
1.导出整个数据库
mysqldump-u用户名-p–default-character-set=latin1数据库名>导出的文件名(数据库默认编码是latin1)23mysqldump-uwcnc-psmgp_apps_wcnc>wcnc.sql
2.导出一个表
mysqldump-u用户名-p数据库名表名>导出的文件名23mysqldump-uwcnc-psmgp_apps_wcncusers>wcnc_users.sql
3.导出一个数据库结构
mysqldump-uwcnc-p-d–add-drop-tablesmgp_apps_wcnc>d:wcnc_db.sql23-d没有数据–add-drop-table在每个create语句之前增加一个droptable
4.导入数据库
1A:常用source命令23进入mysql数据库控制台,45如mysql-uroot-p67mysql>use数据库89然后使用source命令,后面参数为脚本文件(如这里用到的.sql)1011mysql>sourcewcnc_db.sql1213B:使用mysqldump命令1415mysqldump-uusername-pdbname
2、退出MySQL:quit或exit
库操作
1、创建数据库
命令:create database <数据库名>
例如:建立一个名为xhkdb的数据库
mysql>create database xhkdb
;mysql>show databases;
2、显示所有的数据库
命令:show databases(注意:最后有个s)
mysql>show databases;
3、删除数据库
命令:drop database <数据库名
>
例如:删除名为xhkdb的数据库
mysql>drop database xhkdb
;
4、连接数据库
命令:use <数据库名
>
例如:如果xhkdb数据库存在,尝试存取它:
mysql>usexhkdb;
屏幕提示:Databasechanged
5、查看当前使用的数据库
6、当前数据库包含的表信息:
表操作,操作之前应连接某个数据库
1、建表
命令:createtable<表名>(<字段名><类型>[,。.<字段名n><类型n>]);23mysql>createtableMyClass(45>idint(4)notnullprimarykeyauto_increment,67>namechar(20)notnull,89>sexint(4)notnulldefault’′,1011>degreedouble(16,2));
2、获取表结构
命令:desc表名,或者showcolumnsfrom表名23mysql>DESCRIBEMyClass45mysql>descMyClass;67mysql>showcolumnsfromMyClass;
3、删除表
命令:droptable<表名>23例如:删除表名为MyClass的表45mysql>droptableMyClass;
4、插入数据
命令:insertinto<表名>[(<字段名>[,。.<字段名n>])]values(值)[,(值n)]23例如,往表MyClass中插入二条记录,这二条记录表示:编号为的名为Tom的成绩为.45,编号为的名为Joan的成绩为.99,编号为的名为Wang的成绩为.5.45mysql>insertintoMyClassvalues(1,’Tom’,96.45),(2,’Joan’,82.99),(2,’Wang’,96.59);
5、查询表中的数据
查询所有行23命令:select<字段,字段,。..>from<表名>where<表达式>45例如:查看表MyClass中所有数据67mysql>selectfromMyClass;892)、查询前几行数据1011例如:查看表MyClass中前行数据1213mysql>selectfromMyClassorderbyidlimit0,2;1415或者:1617mysql>select*fromMyClasslimit0,2;
6、删除表中数据
命令:deletefrom表名where表达式23例如:删除表MyClass中编号为的记录45mysql>deletefromMyClasswhereid=1;
7、修改表中数据:update表名set字段=新值,…where条件
mysql>updateMyClasssetname=’Mary’whereid=1;
8、在表中增加字段:
命令:altertable表名add字段类型其他;23例如:在表MyClass中添加了一个字段passtest,类型为int(4),默认值为45mysql>altertableMyClassaddpasstestint(4)default’′6
9、更改表名:
命令:renametable原表名to新表名;23例如:在表MyClass名字更改为YouClass45mysql>renametableMyClasstoYouClass;67更新字段内容89update表名set字段名=新内容1011update表名set字段名=replace(字段名,’旧内容’,新内容’)1213updatearticlesetcontent=concat(‘’,content);字段类型和数据库操作
1.INT[(M)]型:正常大小整数类型
2.DOUBLE[(M,D)][ZEROFILL]型:正常大小(双精密)浮点数字类型
3.DATE日期类型:支持的范围是-01-01到-12-31。MySQL以YYYY-MM-DD格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列
4.CHAR(M)型:定长字符串类型,当存储时,总是是用空格填满右边到指定的长度
5.BLOBTEXT类型,最大长度为(2^16-1)个字符。
6.VARCHAR型:变长字符串类型
7.导入数据库表
1创建.sql文件23先产生一个库如auction.c:mysqlbin>mysqladmin-uroot-pcreatauction,会提示输入密码,然后成功创建。45导入auction.sql文件67c:mysqlbin>mysql-uroot-pauction
8.修改数据库
1在mysql的表中增加字段:23altertabledbnameaddcolumnuseridint(11)notnullprimarykeyauto_increment;45这样,就在表dbname中添加了一个字段userid,类型为int(11)。
9.mysql数据库的授权
1mysql>grantselect,insert,delete,create,drop23on.(或test./user./。.)45to用户名@localhost67identifiedby‘密码’;89如:新建一个用户帐号以便可以访问数据库,需要进行如下操作:1011mysql>grantusage1213->ONtest.1415->TOtestuser@localhost;1617QueryOK,0rowsaffected(0.15sec)1819此后就创建了一个新用户叫:testuser,这个用户只能从localhost连接到数据库并可以连接到test数据库。下一步,我们必须指定testuser这个用户可以执行哪些操作:2021mysql>GRANTselect,insert,delete,update2223->ONtest.2425->TOtestuser@localhost;2627QueryOK,0rowsaffected(0.00sec)2829此操作使testuser能够在每一个test数据库中的表执行SELECT,INSERT和DELETE以及UPDATE查询操作。现在我们结束操作并退出MySQL客户程序:3031mysql>exitDDL操作
1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql>SHOWDATABASES;
2、创建一个数据库MYSQLDATA
mysql>CreateDATABASEMYSQLDATA;
3:选择你所创建的数据库
mysql>USEMYSQLDATA;(按回车键出现Databasechanged时说明操作成功!)
4:查看现在的数据库中存在什么表
mysql>SHOWTABLES;
5:创建一个数据库表
mysql>CreateTABLEMYTABLE(nameVARCHAR(20),sexCHAR(1));
6:显示表的结构:
mysql>DESCRIBEMYTABLE;
7:往表中加入记录
mysql>insertintoMYTABLEvalues(“hyq”,”M”);
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql>LOADDATALOCALINFILE“D:/mysql.txt”INTOTABLEMYTABLE;
9:导入.sql文件命令(例如D:/mysql.sql)
mysql>usedatabase;
mysql>sourced:/mysql.sql;
10:删除表
mysql>dropTABLEMYTABLE;
11:清空表
mysql>deletefromMYTABLE;
12:更新表中数据
mysql>updateMYTABLEsetsex=”f”wherename=’hyq’;