mysql的安装
一、linux下Mysql的安装
1.安装mysql5.7.20
1.1 解压及制作软链接
cd /opt
tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql 制作软链接
1.2 编辑环境变量
vim /etc/profile
添加以下一行:
export PATH=/opt/mysql/bin:$PATH
生效配置:
source /etc/profile
1.3 卸载自带mariadb
yum remove mariadb-libs -y
1.4 生成配置文件(/etc/my.cnf)
/etc/my.cnf是默认的位置,现在是没有这个文件的,要手写
vim /etc/my.cnf
[mysqld]
basedir=/opt/mysql
datadir=/opt/mysql/data
socket=/tmp/mysql.sock
user=mysql
log_error=/var/log/mysql.log
log_bin=/opt/mysql/data/mysql-bin
server_id=100
[mysql]
socket=/tmp/mysql.sock
1.5 创建用户和数据目录,并授权
useradd mysql
mkdir /opt/mysql/data -p
chown -R mysql.mysql /opt/mysql
1.6 初始化数据
touch /var/log/mysql.log
chown -R mysql.mysql /var/log/mysql.log
[root@python3 ~]# mysqld --initialize-insecure --basedir=/opt/mysql --datadir=/opt/mysql/data --user=mysql
2019-01-04T03:58:03.128958Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-01-04T03:58:03.142436Z 0 [ERROR] Could not open file '/var/log/mysql.log' for error logging: Permission denied
2019-01-04T03:58:03.142492Z 0 [ERROR] Aborting
报错解决:
touch /var/log/mysql.log
chown -R mysql.mysql /var/log/mysql.log
1.7 启动mysql
cd /opt/mysql/support-files
./mysql.server start
cp mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld restart
扩展:使用systemctl 管理mysql
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
然后加入系统管理
systemctl restart mysqld
netstat -tulnp |grep 3306
二、Windows下mysql的安装
1.解压,放在d盘,在目录文件D:\mysql-5.7.23-winx64下创建一个data目录
2.在cmd窗口下执行该命令D:\mysql-5.7.23-winx64\bin\mysqld --initialize-insecure
初始化mysql
3.启动服务端D:\mysql-5.7.23-winx64\bin\mysqld
启动客户端D:\mysql-5.7.23-winx64\bin\mysql
4.配置环境变量
5.自动启动mysqld服务
要用管理员权限打开cmd
mysqld --install 添加到win10自动启动服务
mysqld --remove 删除自动服务里的mysqld
指定配置文件添加到服务
mysqld --install MySQL --defaults-file="D:\mysql-5.7.23-winx64\my.ini"
6.设置
解压后,如果目录下没有data目录,就创建一个。
win10的配置文件,可以创建一个my.ini的配置文件
里面写上
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
这是设置字符编码的。另外sql_mode也把only_full_group_by这个设置去掉了,only_full_group_by会导致
不能直接查询group_by包裹之外的字段。
三、Mysql8.0在Windows下的安装
1.解压,放在d盘,在目录文件E:\ruanjian2\mysql-8.0.17-winx64下创建一个data目录
2.在cmd窗口下执行该命令E:\ruanjian2\mysql-8.0.17-winx64\mysqld --initialize-insecure
初始化mysql
3.启动服务端E:\ruanjian2\mysql-8.0.17-winx64\mysqld
启动客户端E:\ruanjian2\mysql-8.0.17-winx64\mysql
4.配置环境变量
5.自动启动mysqld服务
要用管理员权限打开cmd
mysqld --install 添加到win10自动启动服务
mysqld --remove 删除自动服务里的mysqld
指定配置文件添加到服务
mysqld --install MySQL8.0 --defaults-file="E:\ruanjian2\mysql-8.0.17-winx64\my.ini"
6.设置
解压后,如果目录下没有data目录,就创建一个。
win10的配置文件,可以创建一个my.ini的配置文件
里面写上
[mysqld]
# 设置3307端口
port=3307
#绑定ip,让其他ip可以访问
bind-address=0.0.0.0
# 设置mysql的安装目录
basedir=E:\\ruanjian2\\mysql-8.0.17-winx64 # 切记此处一定要用双斜杠\\,单斜杠我这里会出错。
# 设置mysql数据库的数据的存放目录
datadir=E:\\ruanjian2\\mysql-8.0.17-winx64\\data # 此处同上
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3307
default-character-set=utf8mb4
7.mysql 8.0 修改了加密的插件方式,导致很多旧版本的navicat无法正常访问。为了方便访问,创建一个原来加密方式的账号。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpassword');
8.mysql设置局域网访问
查询
select user,host from user;
直接在mysql命令中修改
mysql -u root -p
use mysql
update user set host = '192.168.1.%' where user = 'root';
flush privileges;
修改后在局域网即可连接
执行了步骤8,可以不执行步骤7