MySql

通用二进制包安装

shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar xvf /path/to/mysql-VERSION-OS.tar.xz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
shell> cd mysql
shell> mkdir mysql-files
shell> chown mysql:mysql mysql-files
shell> chmod 750 mysql-files
shell> bin/mysqld --initialize --user=mysql
shell> bin/mysql_ssl_rsa_setup
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server

 1. 在linux上安装mysql时,可能在/etc/文件下已经存在my.cnf  或者 mysql/my.cnf  配置文件了,由此可能会导致脚安装脚本执行失败。

2. 安装mysql时,一定要先卸载原来安装的mysql及marialdb;删除系统自带的mysql,删除方法:

1.6.1、查看系统已安装的mysql,执行命令:

rpm -qa | grep mysql

如果只显示:[root@webhost/]# 则

使用命令:find / -name mysql

系统显示:

然后执行以下命令删除mysql:

rm -rf /usr/lib64/mysql

rm -rf /usr/share/mysql

rm -rf /etc/selinux/targeted/active/modules/100/mysql

如果显示:

则执行:

rpm -aq | grep mysql| xargs rpm -e –nodeps 删除掉系统所有的mysql

1.7、删除mariadb

执行命令:# yum remove mariadb*(过程中提示是否继续,选y 继续)

3. 根据官方说明,要安装libaio和ncurses-compat-libs

4.安装

1. 解压文件

tar -zxvf mysql-8.0.11-el7-x86_64.tar.gz

2. 移动解压后的数据库文件

mv mysql-8.0.11-el7-x86_64 /usr/local/mysql

3. 创建mysql组

groupadd mysql

4. 创建mysql用户并添加到mysql组

useradd -g mysql mysql

5. 创建data目录

mkdir /data

6. 修改目录权限

chown -R mysql.mysql /data

chown -R mysql.mysql /usr/local/mysql

7. 创建my.cnf文件(etc目录下已有my.cnf,可先删除)

vi /etc/my.cnf

[mysqld]

port      = 3306

socket    = /tmp/mysql.sock

basedir   = /usr/local/mysql

datadir   = /data

log-error = mysql02_err.log

server-id = 330602

8. 初始化数据库

(mysql 8.0.11是没有/bin/mysql_install_db脚本的,有的人写教程仍在用来误导新人,安装不成功的请注意。官档可查)

#有密码初始化

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize

无密码初始化

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize-insecure

9. 查看密码

cat /data/mysql02_err.log

2018-07-25T14:10:46.576739Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) initializing of server in progress as process 9796

2018-07-25T14:10:49.072963Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: iN:.snX3P_in

2018-07-25T14:10:50.825865Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.11) initializing of server has completed

10. 启动数据库

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &

[1] 9925

2018-07-25T14:20:27.230347Z mysqld_safe Logging to '/data/mysql02_err.log'.

2018-07-25T14:20:27.267638Z mysqld_safe Starting mysqld daemon with databases from /data

11. 登录数据库

/usr/local/mysql/bin/mysql -uroot -p

12. 第一次登录修改root初始化密码

alter user 'root'@'localhost' identified with mysql_native_password by '123456'

13. 创建root@%

create user 'root'@'%' identified by '123456';

grant all privileges on *.* to 'root'@'%' with grant option;

flush privileges;

14. 配置环境变量

vi /etc/profile 在最后添加:

PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH

source /etc/profile

14.1 设置mysql自启动

15. 关闭数据库

mysqladmin -uroot -p shutdown

16. 启动数据库

mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &

17. 查看数据库进程

[root@mysql02 data]# ps -ef|grep mysql

root      10253   9892  0 10:48 pts/2    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql

mysql     10405  10253 16 10:48 pts/2    00:00:01 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=mysql02_err.log --pid-file=mysql02.pid --socket=/tmp/mysql.sock --port=3306

root      10447   9892  0 10:49 pts/2    00:00:00 grep --color=auto mysql

18. 将mysql服务加到系统服务中

cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server

chmod +x /etc/rc.d/init.d/mysql.server

chkconfig --add mysql.server

chkconfig --list mysql.server

19. 关闭数据库

service mysql.server stop

[root@mysql02 etc]# service mysql.server stop

Shutting down MySQL..2018-07-25T15:33:26.490180Z mysqld_safe mysqld from pid file /data/mysql02.pid ended

SUCCESS!

[1]+  Done                    mysqld_safe --defaults-file=/etc/my.cnf --user=mysql  (wd: /data)

(wd now: /etc)

20. 启动数据库

sudo -u mysql service mysql.server start

[root@mysql02 etc]# sudo -u mysql service mysql.server start

Starting MySQL.. SUCCESS!

21. 查看服务

ps  -ef|grep mysql

[root@mysql02 etc]# ps -ef|grep mysql

mysql     10833      1  0 11:35 pts/2    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data --pid-file=/data/mysql02.pid

mysql     11003  10833 10 11:35 pts/2    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=mysql02_err.log --pid-file=/data/mysql02.pid --socket=/tmp/mysql.sock --port=3306

root      11047   9892  0 11:36 pts/2    00:00:00 grep --color=auto mysql

22. 重启数据库

sudo -u mysql service mysql.server restart

[root@mysql02 etc]# sudo -u mysql service mysql.server restart

Shutting down MySQL.. SUCCESS!

Starting MySQL. SUCCESS!

2.0、远程登陆解决方法

远程登陆如果报:Host'xxx'is not allowed to connect to this MySQL server

则执行以下命令:

mysql-u root –p

mysql> use mysql;

select host,user from user;

更改root的host 为 %

执行:mysql> update user set host='%' where user='root';

mysql> FLUSH PRIVILEGES;

修改完成后登陆如果报:

登陆mysql :mysql -uroot –p

按照顺序执行:

ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORDEXPIRE NEVER;#修改加密规则

ALTER USER 'root'@'%' IDENTIFIED WITHmysql_native_password BY 'password'; #更新一下用户的密码

alter user 'root'@'%' identified by ‘123qab’;#修改密码

FLUSH PRIVILEGES; #刷新权限

exit;退出

重启mysql 服务:service mysqld restart

原文地址:https://www.cnblogs.com/hwubin5/p/11166456.html