一、linux下mysql的安装
-
下载
-
安装
这是官方的安装步骤
https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html
- 解压
sudo tar -xvJf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz -C /usr/local
- 创建软连接并创建data文件(用来放数据文件)
cd /usr/local
sudo ln -s mysql-8.0.12-linux-glibc2.12-x86_64 mysql //方便操作而已
sudo mkdir /usr/local/mysql/data
- 创建用户
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
- 修改文件所有者
sudo chown -R mysql:mysql ./
- 安装(初始化)
sudo ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
- 成功之后会看到(记住这个初始密码)
2019-02-20T14:49:42.537551Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.15-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.15) initializing of server in progress as process 16233
2019-02-20T14:49:54.408572Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 4*****W//这里是初始密码
2019-02-20T14:49:58.818568Z 0 [System] [MY-013170] [Server] /usr/local/mysql-8.0.15-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.15) initializing of server has completed
二、mysql的启动
linux 启动mysql的两种方式:
-
直接进入安装目录启动 mysql.server
sudo /usr/local/mysql/support-files/mysql.server start
-
还有一种方式是把这个服务放到将mysql进程放入系统进程中
-
首先把这个服务复制一份系统服务中
sudo cp support-files/mysql.server /etc/init.d/mysqld
-
重启系统查看是不是已经有了这个服务
systemctl list-units --type=service
-
通过service 启动
service mysqld start 启动 service mysqld stop 关闭
-
三、进入使用阶段
启动好服务之后,登录进入MySQL
mysql -h host -u root -p
使用上面生产的初始密码可以啦 ,第一次登之后会要求改密码的!
注意!!!
host是你的主机,我本地的所以是localhost
-
基本命令
- 查看有哪些数据库
show databases
-
创建数据库
create database mysql2
-
使用某个数据库
use 数据库名
-
查看有哪些表
show tables
四、创建远程登录用户
-
创建登录用户
root1 用户名
%代表所有主机都可以
mysql> create user 'root1'@'%' identified by 'root1'; Query OK, 0 rows affected (0.03 sec
创建成功
mysql> SELECT DISTINCT CONCAT('User: [', user, '''@''', host, '];') AS USER_HOST FROM user; +---------------------------------------+ | USER_HOST | +---------------------------------------+ | User: [root1'@'%]; | | User: [mysql.infoschema'@'localhost]; | | User: [mysql.session'@'localhost]; | | User: [mysql.sys'@'localhost]; | | User: [root'@'localhost]; | +---------------------------------------+ 5 rows in set (0.00 sec)
-
授权登录
mysql> grant all privileges on mysql2 to 'root1'@'%' with grant option; Query OK, 0 rows affected (0.01 sec)
- 给外网ip在数据库“mysql2”中 表的创建、修改、删除的权限,以及表数据的增删查改权限
grant create,alter,drop,select,insert,update,delete on mysql2.* to root1@'%'
- 查看授权情况
show grants for test mysql> show grants for root1; +---------------------------------------------------------------------------------------+ | Grants for root1@% | +---------------------------------------------------------------------------------------+ | GRANT USAGE ON *.* TO `root1`@`%` | | GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON `mysql2`.* TO `root1`@`%` | | GRANT ALL PRIVILEGES ON `mysql`.`mysql2` TO `test`@`%` WITH GRANT OPTION | +---------------------------------------------------------------------------------------+ 3 rows in set (0.00 sec)
- 取消授权
revoke all on *.* from root1@localhost;
-
刷新
mysql> flush privileges; Query OK, 0 rows affected (0.01 sec)
-
修改登录验证方式
因为mysql8用caching_sha2_password的方式,
改成mysql_native_password方式
mysql> alter user 'root1'@'%' identified with mysql_native_password by 'root1'; Query OK, 0 rows affected (0.02 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
修改成功的结果
mysql> select user,host,plugin,authentication_string from user; +------------------+-----------+-----------------------+------------------------------------------------------------------------+ | user | host | plugin | authentication_string | +------------------+-----------+-----------------------+------------------------------------------------------------------------+ | root1 | % | mysql_native_password | *6C5083122F877455EF5E7B0165C9098F15F0D511 | | mysql.infoschema | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.session | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | mysql.sys | localhost | caching_sha2_password | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | | root | localhost | mysql_native_password | *9C0FBC8584D076AC91CD87DA715977F36B55FCC8 | +------------------+-----------+-----------------------+------------------------------------------------------------------------+ 5 rows in set (0.00 sec)
-
登录
只有图!!!
-
删除用户
mysql> Delete FROM mysql.user Where User='root1'; Query OK, 1 row affected (0.01 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> drop user 'root1'@'%'; Query OK, 0 rows affected (0.01 sec)
反正之后就是sql语法的事情啦
create ~~