Linux(Centos7) mysql5.7源代码安装教程

时间:2022-06-20 21:08:20

首先安装cmake yum install cmake

解压mysql压缩包 tar -xvzf mysql-5.7.18.tar.gz

安装boost

1.在/usr/local下创建一个名为boost的文件夹
    mkdir -p /usr/local/boost
2.进入这个新创建的文件夹然后下载boost
    wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

3.解压
    tar -xvzf boost_1_59_0.tar.gz

cd mysql-5.7.18

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT='Mysqlma' \
-DWITH_READLINE=ON \
-DWITH_BOOST=/usr/local/boost \
-DSYSCONFDIR=/data/mysqldata/3306 \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock


之后执行make 

make install

(1)设置目录权限

?
1
2
3
[root@ rhel5~] # cd /usr/local/mysql
[root@ rhel5 mysql] # chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql
[root@ rhel5 mysql] # chown -R mysql:mysql data

(2)

[root@ rhel5 mysql]# cp support-files/my-medium.cnf /etc/my.cnf //将mysql的启动服务添加到系统服务中

(3)创建系统数据库的表

?
1
2
[root@ rhel5 mysql] # cd /usr/local/mysql
[root@ rhel5 mysql] # bin/mysqld --initialize --user=mysql //必须保证数据库表目录weikong

(4)设置环境变量

[root@ rhel5~]# vi /root/.bash_profile

在PATH=$PATH:$HOME/bin添加参数为:

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

[root@ rhel5~]#source /root/.bash_profile

(5)手动启动mysql

?
1
2
[root@ rhel5~] # cd /usr/local/mysql
[root@ rhel5 mysql] # ./bin/mysqld_safe --user=mysql &   //启动MySQL,但不能停止


启动日志写在此文件下:/usr/local/mysql/data/localhost.err

关闭MySQL服务

[root@ rhel5 mysql]# mysqladmin -u root -p shutdown //这里MySQL的root用户还没有配置密码,所以为空值。需要输入密码时,直接点回车键即可。

(6)另一种简单的启动mysql的方法(mysql已经被添加到系统服务中)

?
1
2
3
[root@ rhel5~] # service mysql.server start
[root@ rhel5~] # service mysql.server stop
[root@ rhel5~] # service mysql.server restart

如果上述命令出现:mysql.server 未识别的服务

则可能mysql还没添加到系统服务中,下面用另一种方法添加:

[root@ rhel5 mysql]# cp support-files/mysql.server  /etc/init.d/mysql //将mysql的启动服务添加到系统服务中
注意:主要是将mysql.server拷贝到/etc/init.d中,命名为mysql。在有的系统中,mysql.server在/usr/local/mysql/share/mysql/mysql.server中,而本系统中,mysql.server在/usr/local/mysql/support-files/mysql.server中。

然后再用#service mysql start 来启动mysql即可。


密码过期可使用

update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';

flush privileges;

修改密码

添加[mysqld]skip-grant-tables=1

可忽略密码执行

如果显示

The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

 先执行flush privileges;之后再执行就好了

密码永不过期

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

全局用户

SET GLOBAL default_password_lifetime = 0;

update mysql.user set authentication_string=password('root') where user='root' and Host = 'localhost';

alter user ‘root’@’localhost’ identified by ‘root’;