安装Mysql

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

 

posted @   Mike_Jia  阅读(17)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示