MySQL教程: 从环境搭建到使用
前言
下载MySQL
(Mysql的官网-->https://www.mysql.com/)
选中社区版就行,另一个企业版本要收费的。
选择 server
下图是下载安装版本的,也可以下载免安装版本,两者都是一的。
如果是免安装版,则选这个:
若是ubuntu服务器,可选这个:
可能会提示注册账号,不过,不用管它,直接点击"No thanks, just start my download"下载就行。
不过,由于是国外的网站,非常的慢。
安装
安装版
我下载的是引导安装exe。一不小心,就全部安装了。
我选择的是默认安装,好像把一整套工具都装了,包括 Workbench,如下:
安装没什么特别的,一路next就行。
免安装版
不能放在中文目录下。比如放在 C:\mysql
不设置环境变量也是可以,直接调用绝对地址就行。
加环境变量的方法:
再在PATH里加多一个路径,
最后,bin目录下,新建一个批处理文件,以方便启动,具体方法参见附件。
接下来的操作,都是在免安装版的基础下进行的。
因为免安装的方式,不但可以跨平台使用方法相同,更重要的是,可以直接打包到工程或发行包里。一般情况下,实际使用时,能打包成一个包就打包成一个包吧,这样,用户使用起来方便,不用再去安装环境什么的。
ubuntu下安装方法:
1.先解压,命令如下:
mkdir mysql-5.0.96
tar -zxvf mysql-5.0.96-linux-x86_64-glibc23.tar.gz -C mysql-5.0.96/
可以先不加入环境变量里,若要运行,直接使用绝对路径命令运行就行。
配置
以下参考自: https://www.cnblogs.com/zhangkanghui/p/9613844.html
生成data文件:
进入安装目录(由于没有设置环境变量),输入命令:(非管理员权限即可)
mysqld --initialize-insecure --user=mysql
mysql5.0 是不支持这个命令的,输入命令会出错,而且,因为mysql5.0已经有data这个文件夹了,所以,不需要输入这个命令了,跳过这一步。
功能是:在 C:\mysql\mysql-8.0.22-winx64\ 目录下生成data目录
安装MySQL:
输入命令:mysqld -install
这句命令必须要有管理员权限才可以。
如果已经装过其它版本了,可以用命令 mysqld -remove 先删除。
启动服务
输入命令:net start MySQL
这句命令必须要有管理员权限才可以,而且,用小写字母也是可以的。
相对应的,也有停止命令:
mysql5.0 时遇到了一个问题:发生系统错误 1067
解决方法:
参考: https://www.cnblogs.com/ydwzhang/p/10995366.html
mysql-5.0.96-winx64 路径下新建一个my.ini文件,里面填入:
#########################################################
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
basedir=C:\mysql\mysql-5.0.96-winx64
#解压目录
datadir=C:\mysql\mysql-5.0.96-winx64\data
#解压目录下data目录
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
C:\mysql\mysql-5.0.96-winx64bin\mysqld.exe
#########################################################
然后再次运行命令就不会再有这个错误啦。
登录MySQL
登录mysql:(因为之前没设置密码,所以密码为空,不用输入密码,直接回车即可)
mysql -u root -p
(非管理员权限即可)
设置密码
(设置密码见附件)
退出
mysql> quit
重置
如果遇到问题无法解决,那就重新再来一吧。把前面步骤生成的data文件夹删掉行。如果删不掉,提示正在使用,那就使用使用 net stop mysql 关掉它。
从这一点也可以看出,mysql是开机自动启动的。前面的配置流程就要再走一遍。
ubuntu下的配置
进入目录 mysql-5.0.96/mysql-5.0.96-linux-x86_64-glibc23/ 执行命令 : ./configure
在 mysql-5.0.96/ 新建一个文件 mysql.sh ,内容为:(只需修改 MYSQL_HOME 的值)
#!/bin/bash
# Path to mySQL
MYSQL_HOME="/home/ubuntu/mysql-5.0.96/mysql-5.0.96-linux-x86_64-glibc23"
# Check for required environment variables.
if [ -z "$MYSQL_HOME" ];
then
echo Error: MYSQL_HOME environment variable is not set.
exit 2
fi
# paser command params
case "$1" in
start)
#/var/run/mysqld/mysqld.sock
if test -e $MYSQL_HOME/mysqld.sock
#$MYSQL_HOME/bin/mysqladmin ping --socket=$MYSQL_HOME/mysqld.sock >nul 2>&1
then
echo MySQL already Start!
else
exec $MYSQL_HOME/bin/mysqld --no-defaults --user=james --basedir=$MYSQL_HOME --character-sets-dir=$MYSQL_HOME/share/charsets --language=$MYSQL_HOME/share/english --character-set-server=gb2312 --socket=$MYSQL_HOME/mysqld.sock
fi
;;
stop)
if test -e $MYSQL_HOME/mysqld.sock
#$MYSQL_HOME/bin/mysqladmin ping --socket=$MYSQL_HOME/mysqld.sock >nul 2>&1
then
echo please input mysql user name:
read name
echo please input mysql password:
read password
exec $MYSQL_HOME/bin/mysqladmin shutdown --user=$name --password=$password --socket=$MYSQL_HOME/mysqld.sock
fi
;;
*)
echo "Usage: mysql.sh {start|stop}"
;;
esac
exit 0
接着,执行命令 ./mysql.sh
但是出现了一个问题:/bin/bash^M: bad interpreter: No such file or directory
解决方法:
shell脚本格式必须是unix才行,但我这个脚本是在windows上编写完成传到Linux服务器上的,所以一执行就报错。
notepad++设置为
再新建一个文件,就是 unix格式的了,这个问题就可以解决啦。
再输入
./mysql.sh start &
或者
./mysql.sh start
即可启动 mysql 服务。
登陆mysql
输入命令: ./mysql -u root -p
但是又出现了一个问题:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方法:
换成命令 mysql -uroot -h 127.0.0.1 -p
参考:https://www.jb51.net/article/174244.htm
然后其它命令就和window下的命令是一样的了。
使用sql脚本
当然,可以在cmd窗口直接输入,如下图,
(create database 数据库名称;来创建)
但有更好的方式,可以写成脚本的方式,如下:
hello world.sql 文件:
create database test; #创建一个名为test的数据库。
run_sql.bat 文件:(安全起见,也可以先不把密码写在批处理里)
C:\mysql\mysql-8.0.22-winx64\bin\mysql -h localhost -u root -p123456 < "C:/mysql/hello world.sql"
pause
因为sql服务是默认开机启动的,所以一旦安装完,配置好之后,直接登陆就可以了,所以可以直接使用以上的 *.bat 批处理。
mysql中如何写注释
SELECT6+6;#这是单行注释
SELECT8+8;-- 这是单行注释 (注意:--后面要加一个空格,一定要记住)
SELECT15/* 这是一个在行中间的注释 */+2;
多版本问题
比如,JPress 要求只支持 mysql 5.6 或 5.7 版本。那么,我们可以装多一个版本,然后当前想使用那一个版本,就把环境变量的路径改成对应的即可。
数据库复制
比如想把 sitescms 数据库从window下复制倒ubuntu服务器上,方法如下,把data目录下的 sitescms 文件夹复制到 ubuntu 服务器 data 目录下即可。
附件1:WIN7右键在目录当前打开命令行Cmd窗口:
按住“shift”键,再右键就会出现“在此处打开命令窗口”的选项,如下:
当要用管理员权限打开,那又该怎么办呢?
新建一个文件,命名为: 在此处打开命令窗口.bat
内容为:
c:
cd C:\mysql\mysql-8.0.22-winx64\bin
cmd
附件2:设置密码
设置密码
mysql> set password for root@localhost = password('123456');
但是出现了一个问题,如下:
意思是:在sql语句第1行有个语法错误。
改成大写就行了,一般情况下,sql关键字都是大写的。
mysql> SET PASSWORD FOR root@localhost = '123456';
扩展:
让外部可以访问root用户,如果是的话,要用SET PASSWORD FOR root@'%' = '123456';
也要以简化成 mysql> SET PASSWORD = '123456';
如果是 mysql5.0,操作方法就要变一下:
(ubuntu下的操作方法也是一样的,验证过了。)
刚安装完成时root账号默认密码为空,此时可以将密码修改为指定的密码。如:123456。
c:>mysql –uroot
mysql>show databases;
mysql>use mysql;
mysql>UPDATE user SET password=PASSWORD("123456") WHERE user='root';
mysql>FLUSH PRIVILEGES;
mysql>QUIT
如下图: