首先安装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’;