Linux系统服务器上安装MySQL

第一步:下载安装包

cmake:

下载地址:https://cmake.org/download/

下载安装包:https://cmake.org/files/v3.9/cmake-3.9.0.tar.gz

ncurses_devel

下载地址:http://ftp.gnu.org/gnu/ncurses/

下载安装包:http://ftp.gnu.org/gnu/ncurses/ncurses-5.8.tar.gz

MySQL

下载地址:https://dev.mysql.com/downloads/file/?id=471658

下载安装包:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.19.tar.gz

用wget方法来下载安装包 # wget 下载安装包的路径

我这里都是下载在/root/lamp/文件中的,格式为.gz,所以用tar -zxvf 文件名  来解压

准备好之后开始一个一个安装

第二步:安装cmake

[root@iZ2ze5cti43o69css0svslZ lamp ]#cd cmake-3.9.0

[root@iZ2ze5cti43o69css0svslZ cmake-3.9.0]# ./bootstrap


[root@iZ2ze5cti43o69css0svslZ cmake-3.9.0]# gmake


[root@iZ2ze5cti43o69css0svslZ cmake-3.9.0]# gmake install



出现这个表示cmake安装成功了。

第三步:安装ncurses_devel

[root@iZ2ze5cti43o69css0svslZ lamp ]#cd ncurses-5.8

[root@iZ2ze5cti43o69css0svslZ ncurses-5.8]# ./configure --with-shared --without-debug --without-ada --enable-overwrite


[root@iZ2ze5cti43o69css0svslZ ncurses-5.8]#make && make install



第四步:安装MySQL

[root@iZ2ze5cti43o69css0svslZ lamp]# cd mysql-5.7.19

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DDOWNLOAD_BOOST=1  \

-DWITH_BOOST=/usr/local/boost 


[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# make && make install


第五步:添加mysql组和mysql用户,用于设置mysql安装目录文件所有者和所属组

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#groupadd mysql

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# useradd -r -g mysql mysql

 * useradd -r参数表示mysql用户是系统用户,不可用于登录系统。

 * useradd -g参数表示把mysql用户添加到mysql用户组中。

第六步:设置权限

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chmod u+x,g+x,o+x /usr/local/mysql

也可以这么写

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chmod a+x /usr/local/mysql

第七步:设置目录的所有者(mysql.mysql:mysql用户组里面的mysql用户)

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chown -R mysql.mysql /usr/local/mysql         //mysql用户组里面的mysql用户所有

第八步:初始化 MySQL 配置表

备份my.cnf配置文件

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# cp /etc/my.cnf  /mnt/

拷贝服务器服务器配置文件

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# cd /usr/local/mysql/support-files/

[root@iZ2ze5cti43o69css0svslZsupport-files]#cp my-default.cnf /etc/my.cnf 

cp:overwrite `/etc/my.cnf'? y

添加mysql启动命令

[root@iZ2ze5cti43o69css0svslZ support-files]#cp mysql.server /etc/init.d/mysqld

[root@iZ2ze5cti43o69css0svslZ support-files]#cd ../

[root@iZ2ze5cti43o69css0svslZ mysql]# cd bin/

将mysql添加到系统的环境变量里

[root@iZ2ze5cti43o69css0svslZbin]# vim /root/.bash_profile

10 PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin

刷新环境变量文件

[root@iZ2ze5cti43o69css0svslZ bin]# source /root/.bash_profile 

查看mysql添加到环境变量

[root@iZ2ze5cti43o69css0svslZ bin]#echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin:/usr/local/mysql/bin

测试

[root@iZ2ze5cti43o69css0svslZ bin]#which mysql

/usr/local/mysql/bin/mysql

MySQL5.7以后初始化是这样的:

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &


执行之后注意最后一行,这也是和之有版本不同的地方,它给了root一个初始密码,后面要登录的时候要用到这个密码执行

第九步:将mysql/目录下除了data/目录的所有文件,改回root用户所有,mysql用户只需作为mysql/data/目录下所有文件的所有者。

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chown -R root /usr/local/mysql

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# chown -R mysql /usr/local/mysql/data

这是避免数据库恢复出厂设置,保护数据。

第十步:mysql5.7配置文件需要修改my.cnf关键配置, mysql5.7之前默认配置文件中是有配置项的,不用手动修改

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# vi /etc/my.cnf

进入文件修改配置

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

socket=/usr/local/mysql/mysql.sockl

后台运行mysql服务

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# /usr/local/mysql/bin/mysqld_safe --usr=mysql &

&符号,表示所在的命令后台执行

第十一步:将/usr/local/mysql/support-files/mysql.server拷贝为/etc/init.d/mysql并设置运行权限,这样就可以使用service mysql命令启动/停止服务

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#chmod +x /etc/init.d/mysql  

把mysql注册为开机启动的服务

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#chkconfig --add mysql

查看一下是否添加成功

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#chkconfig --list mysql 

第十二步:mysql服务的开启和关闭

开启:

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#/etc/init.d/mysql start   或者   serivce mysql start 

关闭:

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]#/etc/init.d/mysql stop    或者   service mysql stop


查看mysql是否启动:

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# ps -a|grep mysql


第十三步:测试MySQL

[root@iZ2ze5cti43o69css0svslZ mysql-5.7.19]# /usr/local/mysql/bin/mysql -u root -p

这里的密码就是之前初始化数据库时最后一行出现的密码

这样你就已经进入mysql了。

mysql5.7版本会生成一个初始化密码,需要我们重新设置密码才能真正使用数据库

mysql> SET Password=password('123456');

修改密码之后需要刷新一下用户的权限

mysql> flush privileges;


quit:退出数据库

退出后再进入mysql就是使用你自己设置的密码了,同时也可以真正使用mysql

安装时遇到的问题:

1、CMake Error at cmake/boost.cmake:81 (MESSAGE):

  You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<directory>

  This CMake script will look for boost in <directory>.  If it is not there,

  it will download and unpack it (in that directory) for you.

  If you are inside a firewall, you may need to use an http proxy:

  export http_proxy=http://example.com:80

  Call Stack (most recent call first):

  cmake/boost.cmake:238 (COULD_NOT_FIND_BOOST)

  CMakeLists.txt:491 (INCLUDE)

这个是因为缺少boost包

下载地址:http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

下载一个boost包,解压后将这个文件夹放到/usr/lcoal/下面,

在预编译时添加相应的选项:在cmake的最后添加-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost即可

2、c++: Internal error: Killed (program cc1plus)

Please submit a full bug report.

See <http://bugzilla.redhat.com/bugzilla> for instructions.

make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] Error 1

make[1]: *** [sql/CMakeFiles/sql.dir/all] Error 2

make: *** [all] Error 2

这个主要是因为内存不足引起的

参考解决办法:http://www.jackxiang.com/post/8677/


摘记:

1、MySQL5.7版本之后user表中没有password字段了,改成了 authentication_string存用户密码。

2、在user表中创建一个用户:

mysql> CREATE USER 'admin'@'%'IDENTIFIED BY '123456';     //这个用户就可以用navicat for mysql工具远程连接


创建成功之后一定要记得刷新用户权限:mysql> flush privileges;

3、登入mysql时报这个错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

如果你的my.cnf已经保证socket的路径配置正确,还报这样的错误,那么你需要做一个软连接,

例如:# ln -s /home/mysql/mysql.sock /tmp/mysql.sock


猜你喜欢

转载自blog.csdn.net/zyj_15067066062/article/details/76176938