一、Centos 7环境下安装mysql
检查系统是否已经有mysql用户,如果没有则创建
yum install -y perl-Module-Install.noarch openssh-clients make gcc-c++ cmake bison-devel ncurses-devel libaio
编译安装
To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server , then issue the following commands: /usr/local/mysql/bin/mysqladmin -u root password 'new-password' /usr/local/mysql/bin/mysqladmin -u root -h ecs-9279.novalocal password 'new-password' Alternatively you can run: /usr/local/mysql/bin/mysql_secure_installation which will also give you the option of removing the test databases and anonymous user created by default. This is strongly recommended for production servers. See the manual for more instructions. You can start the MySQL daemon with: cd . ; /usr/local/mysql/bin/mysqld_safe & You can test the MySQL daemon with mysql-test-run.pl cd mysql-test ; perl mysql-test-run.pl New default config file was created as /usr/local/mysql/my.cnf and will be used by default by the server when you start it. You may edit this file to change server settings WARNING: Default config file /etc/my.cnf exists on the system This file will be read by default by the MySQL server If you do not want to use this, either remove it, or use the --defaults-file argument to mysqld_safe when starting the server |
添加服务,拷贝服务脚本到init.d目录,并设置开机启动
#拷贝启动文件到/etc/init.d/下并重命令为mysqlbasedir =/usr/local/mysql/
datadir=/home/databases/
socket=/home/databases/mysql.sock
pid-file=/home/databases/mysql.pid
lower_case_table_names=1
port = 51088
log_error=/home/databases/mysql-error.log
slow_query_log_file=/home/databases/mysql-slow.log
slow_query_log=1
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
skip-external-locking
key_buffer_size = 16M
m3ax_allowed_packet = 10M
rt = 51088
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
service mysql start
查看mysql是否启动成功
netstat -lntp | grep 3306
/usr/local/mysql/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking&
如果不成功,检查/data/3306/log目录下的mysql-error.log日志,逐一排除错误
如果登陆成功,下面就修改登录密码(不建议在shell环境下修改密码,否则别人只要查看命令历史就能看到密码(前提是你没有情况命令历史))
mysql> update mysql.user set password=password("123456") where user='root';
mysql> flush privileges;
#增加执行权限
chmod 755 /etc/init.d/mysql
#检查自启动项列表中没有mysql这个,如果没有就添加mysql
chkconfig --list mysql
chkconfig --add mysql
#设置MySQL在345等级自动启动
chkconfig --level 345 mysql on
#或用这个命令设置开机启动
#启动MySQL服务
service mysql start
#或者
/etc/init.d/mysql start
--------------------------
#mysql服务的启动/重启/停止
#启动mysql服务
service mysqld start
#重启mysql服务
service mysqld restart
#停止mysql服务
service mysqld stop
1.假设已经有mysql-5.5.10.tar.gz以及cmake-2.8.4.tar.gz两个源文件
(1)先安装cmake(mysql5.5以后是通过cmake来编译的)
yum install cmake
或者使用下面的方法进行源码安装
mysql源码下载地址:
http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz
[root@ rhel5 local] # tar -zxv -f cmake-2.8.4.tar.gz
[root@ rhel5 local] # cd cmake-2.8.4
[root@ rhel5 cmake-2.8.4] # ./configure
[root@ rhel5 cmake-2.8.4] # make
[root@ rhel5 cmake-2.8.4] # make install
(2)创建mysql的安装目录及数据库存放目录
[root@ rhel5~] # mkdir -p /usr/local/mysql
//mysql数据库存放数据库
[root@ rhel5~] # mkdir -p /usr/local/mysql/data
(3)创建mysql用户及用户组
[root@ rhel5~]useradd -r -g mysql mysql
(4)安装mysql
[root@ rhel5 local] # cd mysql-5.5.10
[root@ rhel5 mysql-5.5.10] # cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1
[root@ rhel5 mysql-5.5.10] # make
[root@ rhel5 mysql-5.5.10] # make install
参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DDEFAULT_CHARSET=utf8 //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all //安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
注意事项:
重新编译时,需要清除旧的对象文件和缓存信息。
# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf
2.配置
(1)设置目录权限
[root@ rhel5 mysql] # chown -R root:mysql . //把当前目录中所有文件的所有者所有者设为root,所属组为mysql
[root@ rhel5 mysql] # chown -R mysql:mysql data
(2)
(3)创建系统数据库的表
[root@ rhel5 mysql] # scripts/mysql_install_db --user=mysql
(4)设置环境变量
在PATH= $PATH: $HOME/bin添加参数为:
PATH= $PATH: $HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
[root@ rhel5~] # source /root/.bash_profile
(5)手动启动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已经被添加到系统服务中)
[root@ rhel5~] # service mysql.server stop
[root@ rhel5~] # service mysql.server restart
如果上述命令出现:mysql.server 未识别的服务
则可能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即可。
(7)修改MySQL的root用户的密码以及打开远程连接
mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@ " % " IDENTIFIED BY " root "; //为root添加远程连接的能力。
mysql>update user set Password = password('xxxxxx') where User='root';
mysql>select Host,User,Password from user where User='root';
mysql>flush privileges;
mysql>exit
重新登录:mysql -u root -p
若还不能进行远程连接,则关闭防火墙
[root@ rhel5~] # /etc/rc.d/init.d/iptables stop
注:如果不能远程连接,出现错误mysql error number 1130,则加入下面语句试试:
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;