1.下载Mysql
打开官网下载地址:https://downloads.mysql.com/archives/community/,按照截图所示下载即可。
选择对应的操作系统
Windows安装
1.下载到本地的安装包是zip包,选择一个指定目录进行解压,解压的过程就是安装的过程,解压后的位置就是MySQL的安装位置。
注意,安装目录不允许有中文、空格和其他特殊字符。
2.拷贝安装目录内的bin路径,并将其添加到系统的环境变量中。
3.MySQL安装目录下,手动创建my.ini
文件
[mysqld] # 默认端口 port=3306 # mysql的安装目录,也是工作目录 basedir=C:/mysql-5.7.20-winx64 # 数据库存放的目录,data目录无需手动创建,MySQL初始化成功,就会自动创建了 datadir=C:/mysql-5.7.20-winx64/data # 错误日志,如果启动失败,可以查看这个错误日志,定位错误原因 log_error=C:/mysql-5.7.20-winx64/mysql.err # 指定默认字符集 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' skip-character-set-client-handshake=true [client] default-character-set=utf8mb4 [mysql] # 可选的参数当你use到某个数据库中,路径上显示当前数据库的名字 # prompt=[\\d]> # 关于字符集的设置 default-character-set=utf8mb4
注意,路径分隔符,不要用Windows默认的\
,这样会有转义,很可能会导致安装失败,所以路径分隔符要用/
。
执行初始化:在任意路径下,以管理员的身份打开终端执行,注意必须是管理员权限!!!!否则报错!!!!!:
mysqld --initialize-insecure
添加启动服务中:
# mysql57表示MySQL服务注册到Windows的服务中的名字 mysqld install mysql57 # 我在Windows上测了下,加--也行,但是好像没有不加--的好使,因为加--的好像从服务中删除不掉,不加--的就能行,所以还是推荐使用不加--的方式吧 # mysqld --install mysql57 # 补充一个删除注册的服务命令 mysqld remove mysql57 # mysqld --remove mysql57
创建密码:
mysqladmin -uroot -p password 123
Q&A:
1.当执行初始化的时候,提示缺少MSVCP120.dll文件。
解决方法:打开microsoft官网:https://www.microsoft.com/en-us/download/details.aspx?id=40784,点击下载
根据系统数位选择下载
以管理员身份运行
2.应用程序无法正常启动(0xc000007b)。请单机"确定"关闭应用程序
解决方法:也是缺少dll文件或者某些文件损坏了。首先还是把上面那个Visual C ++扩展安装包安装下。重新以管理员身份运行
3.'mysqld' 不是内部或外部命令,也不是可运行的程序或批处理文件
解决办法:这很明显,是在环境变量中没有找到bin目录,而我们之前明明在系统的环境变量中添加了,却依然找不到,甚至重启电脑,还是不行。
在用户的变量中也添加上MySQL的bin目录,然后重新打开终端就好了。
4.[ERROR] InnoDB: Header page consists of zero bytes in datafile: .\ibdata1, Space ID:0, Flags: 0. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting-datadict.html for how to resolve the issue.
解决方法:这个报错就是初始化成功(其实没成功,但没报错,误以为成功了),在服务中点击启动时,报的错。
要是打开其错误日志,你大概能找到的error就是跟ibdata有关的报错。
5.终端中使用net start命令,启动mysql也提示服务启动失败
在初始化成功(其实没成功,但初始化命令没报错,而且data目录中也没有mysql这三个初始的数据库,只有ibdata1等三个文件,这三个文件也有问题!),添加完服务之后,使用net命令启动mysqld失败,或者在服务中点击启动报错:
解决方法:在my.ini
文件中追加:
# 追加下面这两行配置 innodb_data_file_path=ibdata1:12M;ibdata2:10M:autoextend innodb_flush_method=normal
然后删掉之前注册的服务、再删掉之前初始化创建的有问题的data目录,然后再重新执行初始化过程应该就可以了。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Centos 安装
卸载相关安装(这里的操作主要是避免不必要包管理方面的混乱)
yum update -y yum remove -y mariadb*
1.安装依赖包
yum install -y epel-release yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost-doc boost-devel libaio-devel
2.下载,解压缩,重命名
[root@cs ~]# cd /opt/ [root@cs opt]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz [root@cs opt]# tar -xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz [root@cs opt]# mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql [root@cs opt]# rm -rf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz [root@cs opt]# ls mysql
3.添加环境变量
[root@cs opt]# vim /etc/profile # 添加如下内容 export PATH=/opt/mysql/bin:$PATH # 然后source生效 [root@cs opt]# source /etc/profile
4.建立mysql用户组,管理该mysql:
[root@cs opt]# useradd mysql
5.创建相关目录并授权
[root@cs opt]# mkdir /data/mysql -p [root@cs opt]# chown -R mysql:mysql /opt/mysql/* [root@cs opt]# chown -R mysql:mysql /data/*
其中:
/opt/mysql/
是MySQL软件所在目录。/data/mysql
是将来存放MySQL数据的目录。
6.初始化数据库
# 保证/data/mysql/目录是空的,避免不必要的问题 rm -rf /data/mysql/* mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/mysql [root@cs opt]# rm -rf /data/mysql/* [root@cs opt]# mysqld --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/data/mysql 2020-06-08T01:25:34.199239Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2020-06-08T01:25:34.357149Z 0 [Warning] InnoDB: New log files created, LSN=45790 2020-06-08T01:25:34.381441Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2020-06-08T01:25:34.436113Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f352c664-a926-11ea-a90d-000c29872edd. 2020-06-08T01:25:34.437057Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2020-06-08T01:25:34.438213Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
上述参数,并不难理解:
--initialize-insecure
,表示不安全的初始化。这个参数来自于--initialize
参数,在MySQL5.7版本中,在初始化成功后,会生成一个临时密码,相对比较麻烦,所以这里改为--initialize-insecure
,初始化时将root用户的登录密码设置为空。--user=mysql
,管理MySQL的用户是mysql
。--basedir=/opt/mysql
,是你MySQL的安装目录。--datadir=/data/mysql
,是管理数据的目录。
[root@CS opt]# ll /data/mysql/ 总用量 110628 -rw-r----- 1 mysql mysql 56 11月 27 14:21 auto.cnf -rw-r----- 1 mysql mysql 419 11月 27 14:21 ib_buffer_pool -rw-r----- 1 mysql mysql 12582912 11月 27 14:21 ibdata1 -rw-r----- 1 mysql mysql 50331648 11月 27 14:21 ib_logfile0 -rw-r----- 1 mysql mysql 50331648 11月 27 14:21 ib_logfile1 drwxr-x--- 2 mysql mysql 4096 11月 27 14:21 mysql drwxr-x--- 2 mysql mysql 8192 11月 27 14:21 performance_schema drwxr-x--- 2 mysql mysql 8192 11月 27 14:21 sys
7.编写配置文件:
[mysqld] user=mysql basedir=/opt/mysql datadir=/data/mysql server_id=6 port=3306 socket=/tmp/mysql.sock [mysql] socket=/tmp/mysql.sock prompt=3306 [\\d]>
prompt
参数为登录进MySQL客户端的提示信息,当你use
到指定的数据库中,该库名将显示在中括号内。
当然,这里提供一份关于字符集的设置的配置文件:
[mysqld] user=mysql basedir=/opt/software/mysql datadir=/data/mysql server_id=6 port=3306 socket=/tmp/mysql.sock character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci init_connect='SET NAMES utf8mb4' skip-character-set-client-handshake=true [client] default-character-set=utf8mb4 [mysql] socket=/tmp/mysql.sock default-character-set=utf8mb4 prompt=3306 [\\d]>
启动Mysql
1.我们可以使用MySQL自带的mysql.server启动MySQL服务。
[root@CS opt]# cd /opt/mysql/support-files/ [root@CS support-files]# ls magic mysqld_multi.server mysql-log-rotate mysql.server
2.在centos6中使用service管理服务
[root@cs opt]# cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld [root@CS opt]# service mysqld start Starting MySQL. SUCCESS! [root@CS opt]# service mysqld restart Shutting down MySQL.. SUCCESS! Starting MySQL. [root@CS opt]# service mysqld stop Shutting down MySQL.. SUCCESS!
3.在centos7版本中,可以使用systemctl来替代service了。
编辑vim /etc/systemd/system/mysqld.service
文件,内容如下:
[Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target After=syslog.target [Install] WantedBy=multi-user.target [Service] User=mysql Group=mysql ExecStart=/opt/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE = 5000
编辑内容中,只需要将ExecStart=/opt/mysql/bin/mysqld
的路径改为你的MySQL安装目录即可,其他的照抄。
完事之后,你就可以使用systemctl命令来管理MySQL服务了,可用命令:
systemctl start mysqld systemctl restart mysqld systemctl stop mysqld systemctl status mysqld systemctl enable mysqld
此时,我们能正常的启动/停止MySQL服务了,但在初始化MySQL的时候,我们还没有配置登录密码,现在,我们来创建密码。
为root用户(该用户为本地用户)创建密码:
mysqladmin -uroot -p password 123
#查看MySQL监听端口
netstat -lnp|grep 3306 ss -lnp|grep 3306 ps -ef|grep mysqld
------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -------------------------------------------------------------------------------
MacOS
选择好对应的版本,直接安装即可。
# MySQL的安装目录 /usr/local/mysql # MySQL的数据库目录 /usr/local/mysql/data # MySQL启动脚本所在目录 /usr/local/mysql/support-files # MySQL配置文件目录,注意,etc目录需要手动创建 /usr/local/mysql/etc/my.cnf
在MySQL安装目录下创建 etc/my.cnf
作为MySQL的配置文件
# 先cd到etc目录 cd /usr/local/mysql/etc # 然后vim 创建my.cnf文件并添加如下内容,完事保存即可 [mysqld] port=3306 basedir=/usr/local/mysql datadir=/usr/local/mysql/data # 错误日志,需要手动创建 logs 目录 log_error=/usr/local/mysql/logs/error.log # 指定默认字符集 character_set_server=utf8mb4
为了避免多个版本共存时,配置文件混乱的问题,建议大家还是把配置文件放在当前MySQL的安装目录下。
为了方便MySQL的启动和停止,我们需要将下面两个目录添加到~/.bash_profile
中:
# 1. 打开~/.bash_profile文件 vim ~/.bash_profile # 然后将下面的路径添加到这个文件中,如果这个文件非空,就添加到最后,如果文件是空的,就添加进去就好了 export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/support-files # 然后保存退出,执行source命令使其生效 source ~/.bash_profile
通过这种以mysql.server
脚本的形式,内部是使用 mysqld_safe
运行,可以守护我们的MySQL进程,如意外挂掉可自动重启。
mac的话,还有一种在系统偏好设置中搞,不推荐。
设置密码:
mysqladmin -uroot -p password 123
标签:opt,--,root,Mysql,MySQL,mysqld,mysql,安装 From: https://www.cnblogs.com/jjjyyylll/p/18399770