目录
一、Windows安装mysql
1、提取MySQL的Windows免安装版的安装包到安装目录下
2、创建选项文件
3、选择mysql的服务器类型
4、初始化数据目录
5、启动服务器
6、关闭mysql服务器
7、安装mysql作为Windows服务
二、Centos系统上通过免安装包安装mysql
1、安装之前
2、下载免安装包
3、解压tar文件
4、修改解要后文件的名字
5、创建mysql用户
6、修改mysql的配置文件
7、安装libaio
8、修改日志文件的权限和文件的操作用户
9、初始化mysql
10、查看初始密码
11、启动mysql
12、连接mysql
13、修改初始密码
14、授权远程登录
三、使用CentOS的yum的方式安装
四、使用docker安装mysql
MySQL的在Windows上的安装方式分为几种,包括:通过安装程序安装,通过免安装版的zip包安装,以及docker镜像安装。我这里介绍的是通过MySQL的免安装包安装。安装过程来自MySQL的官方文档,建议直接参考官方文档。
通过mysql的免安装包安装的步骤分为一下几步:
(1)提取组程序包到安装目录下,并解压。
(2)创建一个选项文件
(3)选择一个mysql的服务器类型
(4)初始化mysql
(5)启动mysql的服务器
(6)保护默认的用户帐户
具体的每一步操作如下:
直接去MySQL的官网下载,这里提供一个连接:windows版MySQL-8.0.15下载,下载以后,将安装包解压到安装目录下。
注意:这里在安装之前需要确保是你的登录用户的权限是administrator权限。
在启动mysql服务器的时候,你可以通过命令行的方式配置服务器启动选项,但是为了方便,我们一般会使用选项文件类配置服务器启动的选项。在一下两种情况下,使用选项文件也的确会方便很多:
(1)、mysql的安装目录或数据文件的目录不是默认的目录
(2)、需要调用服务器配置的时候,比如:内存配置,缓存配置,数据库引擎配置等。
当mysql服务器启动的时候,会自动地在C盘和mysql的安装目录下查找选项文件,mysql首先会从my.ini文件查找选项配置,其次是my.cnf文件,这两个文件必须是纯文本文件。
mysql的服务器分为mysqld和mysqld-debug,这两者之间没有太大的差别,我们用的是mysqld,关于mysqld-debug的介绍,可以查看官网。
在mysql安装完成之后,必须初始化数据目录和系统表。
在C盘根目录下创建my.ini文件,并添加如下配置:
[mysqld]
basedir=E:\\mysql
datadir=E:\\mysql\\data
执行以下命令,进行初始化:
bin\mysqld --defaults-file=C:\\my.ini --initialize-insecure --console
执行该语句后,console会输出一下内容,表示data directory初始化成功了:
[System] [MY-013169] [Server] E:\mysql-8.0.15-winx64\bin\mysqld.exe initializing of server in progress as process 6463
[Warning] [MY-010453] [Server] root@localhost is created with an empty password! Please consiger switching off th --initialize-insecure option.
[System] [MY-013170] [Server] E:\mysql-8.0.15-winx64\bin\mysqld.exe initializing of server has completed
初始化过程中,mysql会做一下事情:
(1)、检查数据目录是否存在,如果不存在就创建一个,如果存在,并且不为空,那么初始化服务退出,并报如下异常:
[ERROR] --initialize specified but the data directory exists. Aborting.
(2)、在数据目录中,服务器创建mysql系统模式及其表,包括数据字典表,授权表,时区表和服务器端帮助表
(3)、服务器初始化管理InnoDB表所需要的系统表空间和相关数据结构。
(4)、服务器创建 'root'@'localhost'
超级用户和其他保留帐户。一些保留帐户被锁定,并且不能被客户端使用,但是 'root'@'localhost'
被用于管理并且你应该为该帐户设置密码。
(5)、服务器添加服务端帮助表格数据,但是time zone tables并不会添加数据,需要手动完成。
命令行cd到mysql的安装目录下,执行以下命令:
bin\mysqld --console
启动成功以后,console会输出一下信息:
[System][MY-010931][Server]E:\mysql\bin\mysqld.exe:ready for connections.Version:'8.0.15' socket:'' port:3306 MySQL community Server -GPL.
bin\mysqladmin -u root shutdown
当Windows启动和关闭的时候,自动启动和关闭mysql,执行以下命令来安装mysql为Windows服务:
bin\mysqld --install
首先需要提示一点,我之前一直使用的是CentOS7的系统,安装mysql以后不能启动,网上说是因为CentOS7系统对mysql不友好,所以我使用了CentOS6系统再次安装了mysql,一次成功。
先检查是否有之前安装过的MySQL的遗留文件,并删除这些遗留文件:
(1)、通过:find / -name mysql 查找到所有的MySQL的文件位置并删除
(2)、删除 /etc/my.cnf
或 /etc/mysql
2、下载免安装包
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
如果上面的解压过程失败,可以使用以下方式:
#先安装xz
yum install xz -y
#然后将tar.xz包转换为tar包
xz -d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
#最后解压tar包
tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar
mv mysql-8.0.16-linux-glibc2.12-x86_64 mysql
解压后的mysql的目录结构是这样的:
drwxr-xr-x. 2 7161 31415 4096 4月 14 07:06 bin
drwxr-xr-x. 2 7161 31415 86 4月 14 07:06 docs
drwxr-xr-x. 3 7161 31415 261 4月 14 07:06 include
drwxr-xr-x. 6 7161 31415 4096 4月 14 07:06 lib
-rw-r--r--. 1 7161 31415 335809 4月 13 19:46 LICENSE
-rw-r--r--. 1 7161 31415 101807 4月 13 19:46 LICENSE.router
drwxr-xr-x. 4 7161 31415 30 4月 14 07:06 man
-rw-r--r--. 1 7161 31415 687 4月 13 19:46 README
-rw-r--r--. 1 7161 31415 700 4月 13 19:46 README.router
drwxrwxr-x. 2 7161 31415 6 4月 14 07:06 run
drwxr-xr-x. 28 7161 31415 4096 4月 14 07:06 share
drwxr-xr-x. 2 7161 31415 77 4月 14 07:06 support-files
drwxr-xr-x. 3 7161 31415 17 4月 14 07:06 var
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql /home/mysql/
chgrp -R mysql /home/mysql/
先进入到文件/etc/my.cnf中:vim /etc/my.cnf
将以下内容复制进去:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
socket=/tmp/mysql.sock
basedir=/home/mysql #mysql的安装目录
datadir=/home/mysql/data #mysql安装目录下的数据目录,这个目录需要手动创建
log-error=/home/mysql/log/mysqld.log #mysql的日志文件,需要手动创建
pid-file=/home/mysql/mysqld.pid
#不区分大小写
lower_case_table_names = 1
max_connections=5000
default-time_zone = '+8:00'
yum -y install libaio
cd /home/mysql/log
chmod 777 mysqld.log
chown mysql:mysql mysqld.log
修改完成以后查看mysqld.log的文件是这样的:
[root@localhost log]# ll
-rwxrwxrwx. 1 mysql mysql 0 7月 21 22:00 mysqld.log
/home/mysql/bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data
如果初始化出现以下错误:
[root@localhost log]# /home/mysql/bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data
/home/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
安装:libnuma.so.1
yum install libnuma.so.1 -y
如果还是报错,安装:numactl.x86_64
yum -y install numactl.x86_64
然会初始化,正确
/home/mysql/bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data
cat /home/mysql/log/mysqld.log
2019-07-21T14:22:32.030141Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: hF>s_e7jwjoV
hF>s_e7jwjoV就是初始密码,在root@localhost后面
service mysqld start
如果提示错误 “mysqld: 未被识别的服务”,那么需要把mysql.server复制到init.d目录下
[root@localhost mysql]# find / -name mysql.server
/home/mysql/support-files/mysql.server
[root@localhost support-files]# cp /home/mysql/support-files/mysql.server /etc/init.d/mysqld
然后再启动mysql:
[root@localhost init.d]# service mysqld start
Starting MySQL. SUCCESS!
mysql -uroot -p
如果出现以下错误提示: -bash: mysql: command not found ,需要将mysql添加到/usr/bin中,然后再启动
[root@localhost init.d]# ln -s /home/mysql/bin/mysql /usr/bin/
[root@localhost init.d]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.16
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin123';
Query OK, 0 rows affected (0.01 sec)
admin123是新密码
如果需要在其他的电脑上连接mysql,需要进行远程登录授权
#先创建远程登录的用户名和密码,test是用户名,%表示允许所有的远程ip登录,123456表示密码
mysql> create user 'test'@'%' identified by '123456';
Query OK, 0 rows affected (0.02 sec)
#然后授权
mysql> grant all privileges on *.* to 'test'@'%' with grant option;
Query OK, 0 rows affected (0.01 sec)
1.查看之前是否有安装MySQL
yum list installed | grep mysql
2.如果有就卸载
yum -y remove name
3.查看之前安装mysql的遗留文件
find / -name mysql
4.如果有就删除
rm -rf name
5.Adding the MySQL Yum Repository
yum localinstall platform-and-version-specific-package-name.rpm
6.Selecting a Release Series
yum repolist enabled | grep mysql
7.Installing MySQL
yum install mysql-community-server
8.Starting the MySQL Server
service mysqld start
9.A superuser account 'root'@'localhost
is created. A password for the superuser is set and stored in the error log file. To reveal it, use the following command:
grep 'temporary password' /var/log/mysqld.log
7JKlH+m:Wpp:
/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h sanxin-host password 'new-password'
+---------------+------+-------------------------------------------+
| Host | User | Password |
+---------------+------+-------------------------------------------+
| localhost | root | admin@123 |
| sanxin-host | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | admin@123 |
| sanxin-host | | |
| % | root | *87683DC6F262224C77766AE5FB37E7BDE0A17FEE |
| 192 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 192.168.0.203 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 192.168.0.201 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+---------------+------+-------------------------------------------+
FHost '192.168.0.203' is not allowed to connect to this mysql serverConnection closed by foreign host
当然,如果想给所有ip都赋予权限,则这样:
grant all privileges on *.* to 'root'@'%' identified by '123456';
3.使授权立即生效
flush privileges;
可以参考这个博客,写的很好,亲测有用:https://www.jianshu.com/p/5f693b4c9468
可以参考这个博客:https://blog.csdn.net/wangyaodong915/article/details/82958372
但是要记住一点,就是在激活navicat的时候,需要断开电脑的网络连接,构造是不能出现手动激活的选项的。