mysql安装

元气小坏坏 提交于 2019-12-29 20:51:16

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

首先可以查看下是否安装了 cmake # rpm -qa |grep cmake 
# cd /usr/local/software
# tar zxvf cmake-2.8.8.tar.gz
# cd cmake-2.8.8
# ./bootstrap
# make && make install
------------------------------------
安装bison:
# tar zxvf bison-2.5.tar.gz
# cd bison-2.5
# ./configure
# make && make install

------------------------------------
创建mysql用户及用户组:
# groupadd mysql
# useradd -r -g mysql mysql

编译安装 MySQL 5.5.23
# tar xvf mysql-5.5.23.tar.gz
# cd mysql-5.5.23/
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
# -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
# -DDEFAULT_CHARSET=utf8
# -DDEFAULT_COLLATION=utf8_general_ci
# -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk
# -DWITH_MYISAM_STORAGE_ENGINE=1
# -DWITH_INNOBASE_STORAGE_ENGINE=1
# -DWITH_READLINE=1
# -DENABLED_LOCAL_INFILE=1
# -DMYSQL_DATADIR=/var/mysql/data

接下来,安装:
# make && make install

注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf

分配权限:
# chmod +w /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql
# ln -s /usr/local/mysql/lib/libmysqlclient.so.16 
# /usr/lib/libmysqlclient.so.16

创建相应的目录:
# mkdir -p /var/mysql/
# mkdir -p /var/mysql/data/
# mkdir -p /var/mysql/log/
# chown -R mysql:mysql /var/mysql/
# cd support-files/
# cp my-large.cnf /var/mysql/my.cnf (注意:my-large.cnf适用于1G内存左右的服务器,可以根据自己配置情况选用my-large.cnf 或 my-huge.cnf 等不同配置)
# cp mysql.server /etc/init.d/mysqld

1. 若有需要请先修改 mysql 的配置 my.cnf
# vi /var/mysql/my.cnf
2. mysql 初始化安装
# /usr/local/mysql/scripts/mysql_install_db --defaults-file=/var/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql

------------------------------------
将 mysql 加入开机启动
chmod +x /etc/init.d/mysqld
vi /etc/init.d/mysqld (编辑此文件,查找并修改以下变量内容:)
basedir=/usr/local/mysql
datadir=/var/mysql/data
chkconfig --add mysqld
chkconfig --level 345 mysqld on
character-set-server=utf8 
port=3306 
#socket=/var/lib/mysql/mysql.sock 

service mysqld start
service mysqld restart

------------------------------------
修改root初始化密码:
/usr/local/mysql/bin/mysqladmin -u root password '123456'
 
cd /usr/local/mysql/bin
./mysql -u root -p
123456

show databases;

查看mysql是否已经启动:
使用如下三种命令中任何一种都可以:
ps -aux | grep mysqld 


进行远程访问赋权:
Sql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Sql> FLUSH PRIVILEGES;


------------------------------------
启动报错:
Starting MySQL....The server quit without updating PID file (/var/lib/mysql/centos6.3.0.pid).
解决办法:
# cd /usr/local/mysql
$ scripts/mysql_install_db

1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/mysql/data/” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld!
2.selinux惹的祸,如果是centos系统,默认会开启selinux
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。

------------------------------------
在Linux系统下,MySQL服务器通常有四种启动方式:mysqld守护进程启动,mysqld_safe启动,mysql.server启动,mysqld_multi多实例启动
1、mysqld守护进程启动
一般的,我们通过这种方式手动的调用mysqld,如果不是出去调试的目的,我们一般都不这样做。这种方式如果启动失败的话,错误信息只会从终端输出,而不是记录在错误日志文件中,这样,如果mysql崩溃的话我们也不知道原因,所以这种启动方式一般不用在生产环境中,而一般在调试(debug)系统的时候用到。 
启动方法: 
[root@test libexec]# ./mysqld

2、mysqld_safe启动
mysqld_safe是一个启动脚本,该脚本会调用mysqld启动,如果启动出错,会将错误信息记录到错误日志中,mysqld_safe启动mysqld和monitor mysqld两个进程,这样如果出现mysqld进程异常终止的情况,mysqld_safe会重启mysqld进程。 
启动方法: 
[root@test bin]# ./mysqld_safe & 
符号“&”表示在后台启动

3、mysql.server启动
mysql.server同样是一个启动脚本,调用mysqld_safe脚本。它的执行文件在$MYSQL_BASE/share/mysql/mysql.server 和 support-files/mysql.server。 
主要用于系统的启动和关闭配置
启动方法: 
[root@test ~]# cp mysql-5.5.34/support-files/mysql.server /etc/init.d/mysql 
[root@test ~]# chmod u+x /etc/init.d/mysql 
[root@test ~]# service mysql start

------------------------------------
MySQL启动简易脚本
[root@localhost baby]# cat mysql_function.sh
#!/bin/bash
. /etc/init.d/functions
path=/usr/local/mysql/bin/
function usage(){
 echo "$0 {start|stop|restart}"
 exit 1
}
[ $# -ne 1 ] && usage
 
function_mysql_start(){
    $path/mysqld_safe --user=mysql &>/dev/null &
 if [ $? -eq 0 ]
  then
      sleep 5
      action "start mysql" /bin/true
 else
      action "start mysql" /bin/false
 fi
}
 
function_mysql_stop(){
    $path/mysqladmin -uroot shutdown &>/dev/null
    if [ $? -eq 0 ]
      then
          action "stop mysql" /bin/true
    else
      action "stop mysql" /bin/false
    fi
}
 
function_mysql_restart(){
    function_mysql_stop
    sleep 3
    function_mysql_start
}
 
case $1 in
 start)
 function_mysql_start
 ;;
 stop)
 function_mysql_stop
 ;;
 restart)
 function_mysql_restart
 ;;
 *)
 printf "Usage:$0 {start|stop|restart}\n"
esac

运行:sh mysql_function.sh stop

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!