Linux安装mysql

第一步:下载mysql

cd /usr/local/src

下载包:

wget https://dev.mysql.com//Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

(或直接从window上传)

解压:

tar zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

移动到/usr/local :

mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local

进到/usr/local/目录下: 

cd /usr/local

改名为mysql:

mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql

然后去到mysql/support-files目录下:

cd mysql/support-files

第二步:修改参数

1、复制my.cnf 到 /etc/my.cnf (mysqld启动时自动读取)

cp my-default.cnf /etc/my.cnf

注意:如果你在安装时Linux虚拟机时同时安装了默认的mysql,此时操作以上步骤,终端将会提示你文件已存在是否覆盖,输入yes覆盖即可。

2、配置数据库编码

vi /etc/my.cnf

在这份文件中可以添加以下配置信息(如果有修改即可)

[mysql]
default-character-set=utf8

[mysqld]
default-storage-engine=INNODB
character_set_server=utf8

3、复制mysql.server 到/etc/init.d/  目录下【目的想实现开机自动执行效果】

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

 (mysql是服务名)

4、修改 /etc/init.d/mysql 参数

vi /etc/init.d/mysql

给与2个目录位置

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

第三步:创建 mysql 用户 (可跳过)

出于安全便利,创建一个操作数据库的专门用户

1)、建立一个mysql的组

groupadd mysql

2)、建立mysql用户,并且把用户放到mysql组

useradd -r -g mysql mysql

3)、给mysql用户设置一个密码

passwd mysql

4)、给目录/usr/local/mysql 更改拥有者

chown -R mysql:mysql /usr/local/mysql/

附:永久性删除用户账号

userdel peter
groupdel peter
usermod –G peter peter

(强制删除该用户的主目录和主目录下的所有文件和子目录)

 

第四步:初始化 mysql 的数据库

首先去到mysql的bin目录

cd /usr/local/mysql/bin

1.初始化

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

生成出一个data目录,代表数据库已经初始化成功
并且mysql的root用户生成一个临时密码:sBBe=g.a*3g+ (最好先记录这个临时密码)

2.给数据库加密

./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

3.启动mysql(为了不让进程卡主,可在启动mysql的命令后加上&代表此进程在后台运行)

./mysqld_safe --user=mysql &

 或者

/usr/local/mysql/support-files/mysql.server start

问题:

 修复:

mkdir /var/run/mariadb/
chown -R mysql:mysql /var/run/mariadb/

 有时建了文件夹和文件后,还是会报错,可以尝试删掉etc/my.cnf文件

4.检查

ps -ef|grep mysql

 

发现有以上进程便代表启动成功。

第五步:进入客户端

首先去到mysql的bin目录

cd /usr/local/mysql/bin

1.登录

./mysql -uroot -p

回车后输入之前的临时密码

错误1:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

这个看应该是权限问题,增加权限配置,

 mkdir /var/log/mariadb/;
 touch /var/log/mariadb/mariadb.log;
 chown -R mysql:mysql /var/log/mariadb/

错误2:mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.

 var/lib/mysql目录不存在,首要先创建,其次Mysql客户端和服务器端是通过初始化mysql.sock 文件来进行通信,所以服务器在启动时需要写入该文件,因此该文件所存放的目录必须双方都具有访问权限

mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/  或者  chmod 777  /var/lib/mysql

 这个问题查了一堆资料没鬼用,最后用下面这句解决了,启动时指定user和地址,原文地址:https://www.cnblogs.com/xuey/p/10460495.html

在默认情况下,Mysql安装以后会在/tmp目录下生成一个mysql.sock文件,如该文件丢失则Mysql将不能够正常启动,解决方法:使用mysqld_safe 启动即可解决;

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

错误3:Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory)

分析/var/log/mariadb/mariadb.log日志, Can't create/write to file '/var/run/mariadb/mariadb.pid' (Errcode: 2 - No such file or directory),同样的处理方式

mkdir /var/run/mariadb/
chown -R mysql:mysql /var/run/mariadb/

2.修改密码

set password=password

或者

首先拿到操作系统的root权限,然后kill掉Mysql服务或者手动stop掉,这里我推荐使用手动stop;

1 service mysql stop

然后执行

1 mysqld_safe --skip-grant-tables &

&,表示在后台运行,不再后台运行的话,就再打开一个终端吧。

接着登陆MySQL修改密码

1 mysql
2 mysql> use mysql;
3 mysql> UPDATE user SET password=password("test123") WHERE user='root';   
4 mysql> exit; 

注意:如果Mysql的版本是5.7及以上的话update语句如下:

1 mysql> update user set authentication_string=passworD("test") where user='root';

参考:https://www.cnblogs.com/chuckjam/archive/2018/08/10/9456255.html

第六步:设置远程访问

1,在远程访问之前需先配置防火墙  systemctl stop firewalld.service(不推荐,可配置开通3306端口)

2,授权

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root的密码' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>select host,user from user; 【多出1条远程登录用户记录】
mysql>flush privileges;(刷新)

或者

mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>Flush Privileges;

错误:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

 安装完mysql 之后,登陆以后,不管运行任何命令,总是提示这个

解决方式如下:

MySQL版本5.7.6版本以前用户可以使用如下命令:

mysql> SET PASSWORD = PASSWORD('Xiaoming250'); 

MySQL版本5.7.6版本开始的用户可以使用如下命令:

mysql> ALTER USER USER() IDENTIFIED BY 'Xiaoming250';

如果不清楚自己是什么版本,可以将两条都尝试一下。

参考:https://blog.csdn.net/muziljx/article/details/81541896

此时使用远程机器进行访问

 

解析:使用mysql -h主机ip -u用户名 -p密码即可进行远程访问

第七步:设置开机自启动

1、添加服务mysql

chkconfig --add mysql 或者【mysqld -install】

2、设置mysql服务为自动

chkconfig mysql on

3、重启查看进程

init 6
ps -ef|grep mysql

第八步:配置环境变量

为了方便操作,配置环境变量还是有必要的。

vi /etc/profile
//export PATH=$JAVA_HOME/bin:/usr/local/mysql/bin:$PATH
export PATH=$PATH:/bin:/usr/local/mysql/bin

小结:到这一步基本的配置基本就完成了。

安装包:mysql安装链接:http://pan.baidu.com/s/1pL7bFab 密码:5iz7

参考:http://www.cnblogs.com/1016882435AIDA/p/6265759.html

https://www.cnblogs.com/yanh0606/p/8556990.html

https://www.jianshu.com/p/276d59cbc529

原文地址:https://www.cnblogs.com/cxscode/p/7349716.html