CentOS7安装MySQL
-
查看Liunx版本
[root@192 bin]# cat /etc/redhat-release
-
下载MySQL
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
-
解压
安装目录:/usr/local/mysqldb/mysql
数据目录:/usr/local/mysqldb/data
[root@192 Downloads]# tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
-
重命名到usr/local/mysqldb目录下,名字为mysql
[root@192 Downloads]# mkdir -p /usr/local/mysqldb && mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysqldb/mysql
-
增加一个mysql用户并赋权限
[root@192 Downloads]# useradd mysql
[root@192 Downloads]# chown -R mysql /usr/local/mysqldb/
[root@192 Downloads]# chgrp -R mysql /usr/local/mysqldb/
-
切换到mysql安装目录
[root@192 Downloads]# cd /usr/local/mysqldb/mysql/bin
-
生成初始化密码并记住这个初始化密码
[root@192 bin]# mkdir -p /usr/local/mysqldb/data && ./mysqld --initialize --user=mysql --basedir=/usr/local/mysqldb/mysql --datadir=/usr/local/mysqldb/data
-
在/etc/目录新增my.cnf文件并配置如下
mysql5.7.29从之前的某个版本开始,在/usr/local/mysqldb/mysql/support-files目录下面呢,就没有名为
my_default.cnf这个文件了,该文件作为配置my.cnf的配置模板
[root@192 bin]# rm -rf /etc/my.cnf [root@192 bin]# vim /etc/my.cnf
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 socket=/var/lib/mysql/mysql.sock [mysqld] sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES skip-name-resolve #设置3306端口 port = 3306 socket=/var/lib/mysql/mysql.sock # 设置mysql的安装目录 basedir=/usr/local/mysqldb/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysqldb/data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=16M #mysql 5.6占用内存400多兆,太大了,配置优化 performance_schema_max_table_instances=600 table_definition_cache=400 table_open_cache=256
创建上面用到的文件夹
[root@192 bin]# mkdir -p /var/lib/mysql&&chmod 777 /var/lib/mysql
-
mysqld
[root@192 bin]# mv /usr/local/mysqldb/mysql/support-files/mysql.server /etc/init.d/mysqld
增加可执行权限
[root@192 bin]# chmod +x /etc/init.d/mysqld
-
配置/etc/init.d/mysqld文件,修改内容如下:
vim /etc/init.d/mysqld
basedir=/usr/local/mysqldb/mysql datadir=/usr/local/mysqldb/data
-
配置mysql开机自动启动(可选:不想开机启动可以不执行)
chkconfig --add mysqld chkconfig --list mysqld chkconfig --level 35 mysqld on
-
启动mysql
[root@192 bin]# systemctl start mysqld
-
登录
[root@192 bin]# ln -s /usr/local/mysqldb/mysql/bin/mysql /usr/bin
[root@192 bin]# mysql -uroot -p
输入临时密码
-
重置默认密码
mysql> set password = password('itcast');
-
后续修改密码
-- 改root的默认生成密码 alter user 'root'@'localhost' identified by '123456'; flush privileges; -- 修改用户密码的方式 -- 方式一 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); flush privileges; -- 方式二:5.7版本没有password这个字段了,改成了authentication_string update user set authentication_string=password('123') where user='root'; flush privileges; -- 方式三 alter user 'root'@'%' IDENTIFIED BY '123456'; flush privileges; -- 创建新用户格式 host可以是localhost、%、具体的ip CREATE USER 'username'@'host' IDENTIFIED BY 'password'; -- 创建新用户举例: create user 'aaa'@'%' IDENTIFIED BY '123'; -- 对用户的操作命令其实是操作的mysql.user表 flush privileges;
-
授权操作
查看用户信息,HOST为localhost,root用户只能本机登录
-- 授权语法 privileges可以是select、INSERT,UPDATE等,如果要授予所的权限则使用ALL -- 所有数据库的所有表: *.* -- []代表此用户可以再给其他用户授权 GRANT privileges ON databasename.tablename TO 'username'@'host' [WITH GRANT OPTION]; flush privileges; -- 授权后需要刷新 -- 举例: 会新增一条记录 grant all on *.* to 'root'@'%'; flush privileges; -- 授权后需要刷新
或者
-
关闭防火墙
[root@192 bin]# systemctl stop firewalld;
-
连接