linux 安装mysql5.7

离线安装

1、cd /usr/local   # 进入压缩包存放的目录

2、tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz   # 解压压缩包

3、mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql   # 修改解压出来的文件夹名称为mysql

4、创建用户组

groupadd mysql
useradd -r -g mysql mysql

5、mkdir /usr/local/mysql/data   # 创建data文件夹,有些版本没有则需要创建

6、给目录和用户授权

cd /usr/local/   # 进入需要授权的目录
chown -R mysql:mysql mysql/
chmod -R 755 mysql/

 

执行下面之前去/etc/目录下修改my.cnf配置文件,不然会出现各种PID或者SOCK有关的问题   # 参考网址https://www.cnblogs.com/shizhengquan/p/11249637.html

7、/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql   # 初始化操作,得到mysql登录的默认密码 

8、复制启动脚本到资源目录

cd mysql   # 进入目录
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld  # 进行赋值

9、chmod +x /etc/rc.d/init.d/mysqld  # 添加mysqld服务控制脚本执行权限

10、 chkconfig --add mysqld   #将mysql服务增加到系统服务

11、 chkconfig --list mysqld   # 查看mysql服务是否生效

12、 service mysqld start   # 启动mysql

13、ln -s /usr/local/mysql/bin/mysql /usr/bin  # 提示找不到语句或者报错执行这一句

14、 mysql -uroot -p  # 登录mysql,密码就是初始密码

15、修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';  #如果这句执行错误,则执行下面的

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';

16、systemctl stop firewalld.service   # 关闭防火墙 

 

使用yum安装

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB

1、wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm   #下载mysql5.7版本的

2、yum -y install mysql57-community-release-el7-10.noarch.rpm

3、yum -y install mysql-community-server  # 这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb

PS:报错未找到匹配的参数: mysql-community-server,执行sudo yum module disable mysql 关闭模块

4、systemctl start mysqld.service  # 启动mysql

5、systemctl status mysqld.service  # 查看mysql

6、grep "password" /var/log/mysqld.log   # 查看mysql的初始密码

7、mysql -uroot -p

8、修改密码策略为简单,看下面的修改策略教程

9、flush privileges; # 强制刷新策略

10、ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';   # 修改root用户的密码,这一步一定要指定,首次登陆必须修改

11、yum -y remove mysql57-community-release-el7-10.noarch   # 因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉

12、service mysqld start  # 启动mysql

13、update user set host = '%' where user = 'root';  # 开启所有ip访问都可,需要进入自身的数据库,use mysql

13、firewall-cmd --zone=public --add-port=80/tcp --permanent    # 开启防火墙端口,permanent永久生效,没有此参数重启后失效

14、/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT  # 这个是用iptables时候 如果远程连接不上,则是端口没开,执行这条开启端口即可

 

修改密码策略

1、SHOW VARIABLES LIKE 'validate_password%';  # 查看策略

参数解释

alidate_password_dictionary_file  # 插件用于验证密码强度的字典文件路径。

validate_password_length  # 密码最小长度,参数默认为8,它有最小值的限制,最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

validate_password_mixed_case_count  #密码至少要包含的小写字母个数和大写字母个数。

validate_password_number_count  # 密码至少要包含的数字个数。

validate_password_policy  # 密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。有以下取值:

Policy Tests Performed 

0 or LOW Length

1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters

2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

 

validate_password_special_char_count  # 密码至少要包含的特殊字符数。

 

修改策略执行的语句

set global validate_password_policy=0;

set global validate_password_mixed_case_count=0;

set global validate_password_number_count=0;

set global validate_password_special_char_count=0;

set global validate_password_length=4;

创建用户

create database db1 default charset utf8; # 创建数据库

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';  # 创建用户和密码

grant all privileges on testDB.* to 'myuser'@'%' identified by 'mypassword'; # 授权允许远程登录

DROP USER 'username'@'localhost';  # 删除用户

REVOKE all ON databasename.tablename FROM 'username'@'localhost';  # 撤销授权

 

报错处理方式

1、错误信息  1130 - Host '192.168.114.1' is not allowed to connect to this MySQL server

方法1

mysql -u root -p  

use mysql;  # 进入mysql数据库

update user set host = '%' where user = 'root'  and host='localhost';  # 所有用户都可链接

service mysql restart  # 重启mysql

 

2、错误信息  1045-Access denied for user 'root'@'192.168.1.13' (using password: YES)

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;  # 执行这句允许用户远程登录

 

3、执行允许远程登录指令报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

 解决办法:set global validate_password_policy=0;

                   set global validate_password_length=1;

                   set global validate_password_mixed_case_count=2;

PS:参考网址https://www.cnblogs.com/ivictor/p/5142809.html

 

4、终端中需要登录mysql,此时输入mysql报错,缺少环境导致

 

执行命令  yum install libncurses*

 

5、查看mysql初始密码报错

TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details

  --initialize specified but the data directory has files in it. Aborting.

停止mysql服务,删除data目录瞎所有文件,my.cnf中添加explicit_defaults_for_timestamp=true

 

6、ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwor:yes)  # 密码错误,需要跳过密码验证修改密码

vim /etc/my.cnf

skip-grant-tables  # [mysqld] 下面任意最后一行添加这项参数

systemctl restart mysqld

mysql

use mysql

update mysql.user set authentication_string=password('*******') where user='*******';  # 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

 

7、ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. # 初始化密码后登陆需要强制修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '123' PASSWORD EXPIRE NEVER;

flush privileges;

 

8、SyntaxError: invalid syntax 由于用户取消而退出

1、必须修改的两个yum配置文件

因为yum使用python2,因此替换为python3后可能无法正常工作,继续使用这个python2.7.5,因此需要修改yum相关配置文件。

vi /usr/bin/yum

#!/usr/bin/python  改成 #!/usr/bin/python2.7

vi /usr/libexec/urlgrabber-ext-down

#!/usr/bin/python 改成 #!/usr/bin/python2.7

完成上面两步,现在使用yum命令基本不会出现这样的错误:SyntaxError: invalid syntax  由于用户取消而退出

 

更改数据库存放的目录

/usr/bin   # 客户端程序和脚本

/usr/sbin mysqld  # 服务

/var/lib/mysql   # 日志文件,数据库文件

/usr/share/mysql  # 错误消息和字符集文件

/etc/my.cnf  # 配置文件

 

安装mysql后默认路径是在根磁盘下,由于根磁盘的空间不足,修改mysql数据库的存放路径

停止mysql服务

1、mkdir -p /home/data  # 创建自定义数据库目录

2、cp -R /var/lib/mysql /home/data/  # 将整个目录复制移动到自定义目录下

3、mv /var/lib/mysql /var/lib/mysqlbak  # 修改默认的目录用于备份

4、chown -R mysql:mysql /home/data/mysql  # 设置目录权限

5、vim /etc/my.cnf  # 配置文件中注释 datadir=/var/lib/mysql 和socket=/var/lib/mysql/mysql.sock

添加 datadir=/home/data/mysql 和 socket=/home/data/mysql/mysql.sock

6、setenforce 0  # 设置一个Selinux即可

 

mysql中没有password字段修改密码

update user set authentication_string=authenication_string('111111') where user='root';

 

修改事物等级

目录/etc/my.cnf  在【mysqld】下添加transaction-isolation=Read-Committed即可

vim /etc/my.cnf

[mysqld]下增加transaction-isolation=Read-Committed

transaction-isolation=Read-Committed

 

Aborted connection 35 to db: 'unconnected' user: 'ca' host: 'localhost' (init_connect command failed)

这句报错是因为没允许此用户远程登录

 

ubuntu arm 安装mysql

 

apt install mysql-server

进入mysql 设置root密码

修改/etc/mysql/mysql.conf.d/mysqld.cnf,

注释掉bind-address = 127.0.0.1和 mysqlx-bind-address = 127.0.0.1(否则无法远程连接)

 

 

posted @ 2019-07-25 14:41  clyde_S  阅读(378)  评论(0编辑  收藏  举报