linux下安装mysql

一.linux安装mysql服务分两种安装方法:

①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错;

②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺点是安装包很大,300M左右。以下介绍linux使用官方编译好的二进制包安装mysql。

安装前先卸载以前安装过的mysql

yum方式:yum remove mysql

rpm方式:

rpm -qa | grep mysql  (这是查找包名)

rpm -e --nodeps 上面查找到的包名

源码方式:

find / -name mysql (这是查找文件名)

rm -rf 上面查找到的文件名

二.到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit)32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)

三.一般我们可以通过wget下载,wget下载的一般在用户的家目录下,例如下载mysql 5.6 的64位(可以根据自己的需求去mysql官网下载需要的版本)  wget  https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz

  如果是root用户下载的一般在root 家目录,cd /root  就可以看见刚下载的包了,进入安装包所在目录,执行命令 tar -xvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz(这是我上面下载的mysql5.6的包)

  解压后的我们一般放在/usr/local目录下,PHP,mysql我们一般放在这个目录,(后两条命令在刚刚解压后的目录下进行)我一般先把解压后的目录改个名字mv mysql-5.6.40-linux-glibc2.12-x86_64 mysql,然后移动到/usr/local目录下cp mysql /usr/local

  注意:如果没有装过 基础软件的可以尝试执行以下命令,不然下面会报错,因为包没安装的原因(安装的就可以不用安装了

      yum install pcre gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel

    yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel curl curl-devel make

    yum -y install gd gd2 gd-devel gd2-devel numactl openssl openssl-devel libxslt libxslt-devel pcre-devel vim libaio-devel.x86_64

四.添加系统mysql组和mysql用户

  1.先执行这个命令,不然会报错(这个其实就是MySQL的配置文件放在哪里),rm -rf /etc/my.cnf,然后创建MySQL的数据存放目录(mkdir -p /var/data/mysql)

  2.先groupadd mysql,如果有就不用添加了,没有就添加useradd -r -g mysql mysql

五.准备开始安装mysql数据库了

  1.先进入mysql的安装目录 cd /usr/local/mysql,

  2.修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./

  3.mysql的安装目录是(/usr/local/mysql),MySQL的数据存储目录是(/var/data/mysql),这个不一定要和我配置的一样

./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql.pid --tmpdir=/tmp(如果执行这一步报错,可能你有基础软件没装,或者装过后又卸载了,文件没卸载干净,卸载命令最上面有,在这条命令的最后找到ERROR,复制错误去百度下就行)

  4.修改当前目录拥有者为root用户:执行命令 chown -R root:root ./

  5.修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data,到此数据库安装完毕

六.添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,chkconfig --add /etc/init.d/mysql,chkconfig mysql on ,启动mysql服务:执行命令service mysql start,执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功

七.修改mysql的root用户密码,root初始密码为空的,执行命令:./bin/mysqladmin -u root password '密码',会报一个错不用管,如果报这个错的话

    error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)'

             Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!

执行这个 命令(find / -name mysql.sock),把找到的目录软连接过去,我找到的目录,(ln -s /var/lib/mysql/mysql.sock /tmp)

八.把mysql客户端放到默认路径:ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql,注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql

九.比如远程链接时报没有权限,navicate链接时,报1130错误没有权限,先在linux下mysql -u root -p进入mysql,use mysql数据库,show tables;会看见user表,执行这个命令update user set host = '%' where user = 'root'; ,会报一个错,ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY',不用管,

再执行这个命令FLUSH PRIVILEGES;,这时就可以远程访问了,

十.退出mysql,再次进入时会报这个错误ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES),这个你不输入密码进入就会显示数据库不全,输入密码就会报这个错,解决方法

cd /usr/local/mysql(进入安装的目录)vim my.cnf ,在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,保存退出

service mysql restart(重启mysql后),mysql -u root -p 进入mysql直接按回车进入,不要输入密码

依次执行以下代码

use mysql;    update user set password=password("你的新密码") where user="root";  delete from user where USER="";   flush privileges;    quit;

再去吧my.cnf的这一句话去掉(skip-grant-tables)

service mysql restart(重新启动mysql),现在mysql安装好了

原文地址:https://www.cnblogs.com/dyj--php/p/9207742.html