Welcome

首页 / 操作系统 / Linux / CentOS使用Tar包安装MySQL

网上下载适合版本的MySQL安装包,当前以MySQL-5.7.34为例

安装必需包

yum -y install gcc

解压

tar -zxvf mysql.tar.gz

解压后,将文件夹重命名为mysql

移动mysql文件夹至/usr/local/下


添加用户组

/usr/sbin/groupadd mysql

添加新用户

/usr/sbin/useradd -g mysql mysql

创建相关的目录


ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql

ln -s /usr/local/mysql/include/mysql /usr/include/mysql

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump


cd /usr/local/mysql/bin/

 

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

  

会生成一个root 的 随机密码,请务必先记录一下。如果忘记了,请查看 ( /usr/local/mysql/logs/mysqld.log )

  

对相应的目录增加权限

chmod +w /usr/local/mysql

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

chmod +w /var/lib/mysql

chown -R mysql:mysql /var/lib/mysql

  

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

chmod 755 /etc/init.d/mysqld

echo 'basedir=/usr/local/mysql/' >> /etc/init.d/mysqld

echo 'datadir=/usr/local/mysql/data' >>/etc/init.d/mysqld

  

service mysqld start

如果服务不能正常启动,则可以尝试删除掉data目录和/tmp/mysql.sock和/var/lib/mysql/mysql.sock文件,重试即可。

//重置密码,直接使用生成的密码登录即可。

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

新的版本中,通过上述语句,就可以初始化MySQL,并且生成随机密码。

下面的语句适用于老版本安装,新版本的MySQL已经加入了密码安全级别,不允许这样操作了。

mysqld_safe --skip-grant-tables &

mysql -uroot -p

use mysql;

update user set authentication_string=password('root') where user='root';

exit;

重启mysqld



加端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

 

开启远程:

update user set host = '%' where user = 'root'; 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

FLUSH PRIVILEGES;

 

设置密码不过期

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

 

如果提示:ERROR 1820 (HY000):You must Set PASSWORD before....

则可以直接执行

mysql>set password=password('root');

重置密码


以下安装方法为早期安装包,但最新的MySQL包中基本都自带了boost


MYSQL包含Boost和不包含Boost版本

建议找到包含boost版本。

/usr/sbin/groupadd mysql

/usr/sbin/useradd -g mysql mysql

mkdir -p /usr/local/mysql/data

mkdir -p /usr/local/mysql/binlog

mkdir -p  /usr/local/mysql/logs

mkdir -p /usr/local/mysql/relaylog

mkdir -p /var/lib/mysql

mkdir -p /usr/local/mysql/etc

在此之前还需要安装boost.tar.gz

可以从网上下载最新版本boost-1.59.0.tar.gz

tar xzf boost_1_59_0.tar.gz

cd boost_1_59_0

mv boost_1_59_0 boost

mv boost /usr/local

 

之后下载mysql.tar.gz,最新版本mysql-5.7.10.tar.gz

tar -zxvf mysql-5.7.10.tar.gz

cd mysql-5.7.10

 

cmake -DCMAKE_INSTALL_PREFIX="/usr/local/mysql" -DDEFAULT_CHARSET=utf8 -DMYSQL_DATADIR="/usr/local/mysql/data/" -DCMAKE_INSTALL_PREFIX="/usr/local/mysql" -DINSTALL_PLUGINDIR=plugin -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_COLLATION=utf8_general_ci -DENABLE_DEBUG_SYNC=0 -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=1 -DWITH_ZLIB=system -DWITH_EXTRA_CHARSETS=none -DMYSQL_MAINTAINER_MODE=OFF -DEXTRA_CHARSETS=all -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_BOOST=/usr/local/boost

 

make -j `cat /proc/cpuinfo | grep processor| wc -l`

make install

  


ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

ln -s /usr/local/mysql/bin/mysqld /usr/bin/mysqld

ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump

ln -s /usr/local/mysql/bin/myisamchk /usr/bin/myisamchk

ln -s /usr/local/mysql/bin/mysqld_safe /usr/bin/mysqld_safe

  

rm -rf /etc/my.cnf

进入mysql安装源下的support-files目录

cp my-default.cnf /usr/local/mysql/etc/my.cnf

  

cd /usr/local/mysql/bin/

  

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

  

会生成一个root 的 随机密码,请务必先记录一下。如果忘记了,请查看 ( /usr/local/mysql/logs/mysqld.log )

  

  

chmod +w /usr/local/mysql

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

chmod +w /var/lib/mysql

chown -R mysql:mysql /var/lib/mysql

  

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

chmod 755 /etc/init.d/mysqld

echo 'basedir=/usr/local/mysql/' >> /etc/init.d/mysqld

echo 'datadir=/usr/local/mysql/data' >>/etc/init.d/mysqld

  

service mysqld start

  

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

 

//重置密码:

mysqld_safe --skip-grant-tables &

mysql -uroot -p

use mysql;

update user set authentication_string=password('root') where user='root';

exit;

重启mysqld

 

加端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

firewall-cmd --reload

 

开启远程:

update user set host = '%' where user = 'root'; 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION 

FLUSH PRIVILEGES 

 MySQL8以上的授权方式如下:

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

同时第一次登录时修改密码的方式如下:

mysql>set password='root';

其中root为新密码。

设置密码不过期

ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;

 

如果提示:ERROR 1820 (HY000):You must Set PASSWORD before....

则可以直接执行

mysql>set password=password('root');

重置密码