MySQL安裝配置,命令,異常紀要

1、Mac上的安裝配置
     // brew安裝
     brew install mysql
     // 設置爲開機啓動
     brew services start mysql 
     // 也能夠手動自啓
     mysql.server start 
     // 登陸
     mysql -uroot 
     注意:
         1)若登陸時提示沒有mysql這個命令,則須要將mysql的bin目錄加入PATH:
              export PATH=$PATH:/usr/local/mysql/bin
         2)此時登陸爲默認狀態,未設密碼,若要設置密碼,可在登陸後運行以下命令:
               SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
 
2、Linux CentOS安裝
     在centos7上安裝mysql5.6,採用source形式安裝,過程以下:
     1)安裝依賴包:yum install -y gcc gcc-c++ kernel-devel ncurses-devel bison cmake
     2)命令執行過程:
    # Preconfiguration setup
    shell> groupadd mysql
    shell> useradd -r -g mysql -s /bin/false mysql
 
    # Beginning of source-build specific instructions
    shell> tar zxvf mysql-VERSION.tar.gz
    shell> cd mysql-VERSION
    shell> mkdir build
    shell> cd build
    shell> cmake ..
    shell> make
    shell> make install
    # End of source-build specific instructions
 
    # Postinstallation setup
    shell> cd /usr/local/mysql
    shell> chown -R mysql .
    shell> chgrp -R mysql .
    shell> scripts/mysql_install_db --user=mysql   (這一步可能引起問題1)
    shell> chown -R root .
    shell> chown -R mysql data
    shell> bin/mysqld_safe --user=mysql &
 
    # Next command is optional
    shell> cp support-files/mysql.server /etc/init.d/mysql.server
 
     3)環境變量配置
         export PATH=$PATH:/usr/local/mysql/bin/ 
 
     4)設置root用戶密碼
         a、查看當前的用戶及登陸密碼: SELECT User, Host, Password FROM mysql.user;
         b、重置密碼: 
          UPDATE mysql.user SET Password = PASSWORD('123456') where user='root';
          FLUSH PRIVILEGES;  // 刷新用戶權限信息
         c、退出從新登陸: mysql -uroot -p
 
     5)容許任何主機遠程訪問數據庫
         GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
 
3、異常問題及解決辦法
一、從新啓動報錯
 => 在my.cnf配置文件中[mysql]下加上tmpdir= /User/userName/mysql/data,或者刪除/usr/local/mysql/data目錄下logfile*文件
 
如下問題主要出如今CentOS7環境下的安裝過程當中:
二、FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:Data:Dumper
=> yum -y install autoconf
 
三、mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
=>
/etc/my.cnf
[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
 
 
四、Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    (未解決,多是以前卸載殘留致使,重裝了=_=!)
 
五、Ignoring query to other database
    啓動mysql時沒有帶-u參數
 
六、某個字斷被截斷,檢查插入的數據類型是否與實際表結構中數據類型一致
 
七、 ERROR! MySQL server PID file could not be found!
Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/xiexin-01.pid).
=> 殺掉mysql進程,再從新啓動
 
八、Table doesn’t exists error
=> The issue is that you need the ib* files in the root of the MySQL datadir (e.g. ibdata1, ib_logfile0 and ib_logfile1).
     沒有的話,要重建庫了
 
九、utf8_general_ci incompatible  with utf8mb4_unicode_ci
=> select * from messages where CONVERT(CIRCLE_ID USING utf8mb4) COLLATE utf8mb4_unicode_ci in(select CIRCLE_ID from circle_tenant where tenant_id='saq') and fresh_type='ORIGINAL'
 
十、導入數據時,被禁止
mysqlimport: Error: 1290, The MySQL server is running with the --secure-file-priv option so it cannot execute this statement, when using table: v_ssxx_jrxy
=> show variables like '%secure%’; // 查看當前變量值
重設:在my.cnf中mysql節下設置secure_file_priv=/Users/patty
或者啓動時設置:mysql.server start —secure_file_priv=‘/Users/patty'
 
4、 相關命令
一、查看字符集
     SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
     show full columns from users;    // 產看錶字段字符集
 
二、設置字符集,支持emoji表情符號
     utf8mb4 可用於表情符號, 此時應設置數據庫、表、表相關字段的字符集均爲utf8mb4,方可實現數據的正常插入或是更新
     set character_set_results=‘utf8mb4';
     // 設置表字段字符集
     alter TABLE articles MODIFY column title text CHARACTER set utf8mb4;
     // 設置表字符集
     ALTER TABLE articles  CHARSET=utf8mb4;
   ALTER TABLE T_CPDAILY_EMOTIONCOMMUNICATES CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
 
 
三、字符串經常使用操做
     1)替換 replace
     UPDATE articles SET contUrl=REPLACE(contUrl, ‘/we', ‘/you'), sImgUrl=REPLACE(sImgUrl, '/root/asse', ''),
resUrl=REPLACE(resUrl, '/root/asse', '');
 
     2)切割 split
     // 設置split函數,返回指定子串長度
     CREATE FUNCTION substrCount(x varchar(500), delim varchar(12)) returns int
     return (length(x)-length(REPLACE(x, delim, '')))/length(delim);
     select DISTINCT BM, BMFULL from v_ssxx_jrxy ORDER BY BM, substrCount(BMFULL,'/') desc;
 
     3)substring_index內置函數,選擇二級部門
     SELECT DISTINCT BM, SUBSTRING_INDEX(BMFULL,'/',-1) as secondDepart from v_ssxx_jrxy ORDER BY BM
 
四、數據遷移
    若輸入mysqldump提示沒有該命令,則啓用命令:export PATH=$PATH:/usr/local/mysql/bin/mysqldump
    導出整個數據庫的表結構及數據:shell中運行>>> mysqldump -uuser -ppassword databaseName -h host > DB.sql
    導入:mysqlClient中運行>>> source DB.sql
 
五、全文索引
     innodb要求mysql 5.6.4以上版本支持
     1)建立索引,能夠在建立表時進行,也能夠修改表或直接創建索引的方式
     ALTER TABLE ARTICLES ADD COLUMN SEG_CONTENT VARCHAR(4000) DEFAULT NULL;
     CREATE FULLTEXT INDEX IDX_SEG_CONTENT ON ARTICLES(SEG_CONTENT);
     // 查詢
     SELECT * FROM ARTICLES WHERE MATCH(SEG_CONTENT) AGAINST(‘新鮮事’ IN BOOLEAN MODE);
     MySQL目前支持全文搜索的還有:
     NATURAL LANGUAGE MODEL: MyISAM引擎下,該模式對於詞頻超過50%的詞視做停用詞
 
     2)操做過程當中,可能會發現,對於中文常常會搜索不到結果,緣由是,默認配置下innodb_ft_min_token_size的值爲3,該值是針對英文
全文搜索的默認設置,用於過濾相似」a」,」to」這類停用詞,對於中文,咱們須要將該值設置爲1 或者 2,不然大部分詞長小於3的都將被過濾掉。
    重啓server設置token_size值爲1:  /etc/init.d/mysql.server restart --innodb_ft_min_token_size=1
                                                          SHOW VARIABLES LIKE 'innodb_ft_min_token_size'
    刪除原有的FullText Index:DROP INDEX IDX_FULL_TEXT_CONTENT ON ARTICLES;
    重建全文索引:CREATE FULLTEXT INDEX IDX_CONTENT ON ARTICLES(content);
 
    3) 設置本地停用詞表
    CREATE TABLE T_CPDAILY_STOPWORDS(value VARCHAR(30)) ENGINE = INNODB;
    SET GLOBAL innodb_ft_server_stopword_table = 'cpdaily/T_CPDAILY_STOPWORDS';
 
    4)設置配置項
    show VARIABLES like 'innodb_%';
    set GLOBAL innodb_optimize_fulltext_only=ON;
    set global innodb_ft_aux_table = ‘cpdb/articles';
    OPTIMIZE TABLE articles;
 
六、split
SELECT "信息工程系" as pd,  SUBSTRING_INDEX(SUBSTRING_INDEX('信息工程系/計算機/通訊','/',2),'/', -1) as sd, SUBSTRING_INDEX('信息工程系/計算機/通訊','/',-1) as sec from DUAL
 
5、卸載
   Mac上的卸載
   sudo rm /usr/local/mysql
   sudo rm -rf /usr/local/mysql*
   sudo rm -rf /Library/StartupItems/MySQLCOM
   sudo rm -rf /Library/PreferencePanes/My*
   vim /etc/hostconfig  (and removed the line MYSQLCOM=-YES-)
   rm -rf ~/Library/PreferencePanes/My*
   sudo rm -rf /Library/Receipts/mysql*
   sudo rm -rf /Library/Receipts/MySQL*
   sudo rm -rf /var/db/receipts/com.mysql.*
   Linux上的卸載
    1)
    yum list installed mysql*  
    rpm -qa | grep -i mysql 
    2)
    yum remove mysql mysql-devel mysql-server mysql-libs compat-mysql51  
    rpm -aq | grep -i mysql
    3)
    rm -rf /var/lib/mysql
    4)
    whereis mysql  
    rm -rf /usr/lib64/mysql
    rm -rf /usr/local/mysql
    rm -rf /usr/local/mysql/bin/mysql
    5)
    find / -name mysql
    rm -rf /usr/lib/mysql
    rm -rf /usr/share/mysql
    rm -rf /usr/local/mysql-5.6.35/
    rm -rf /run/mysql
    rm –rf /usr/my.cnf  
    rm -rf /root/.mysql_sercret   
    6)
    chkconfig --list | grep -i mysql 
    chkconfig --del mysqld  
    rm -rf /var/log/mysql
 
注!!!
1、安裝cmake:
    // 獲取安裝包並解壓縮
    wget https://cmake.org/files/v3.3/cmake-3.3.2.tar.gz 
    tar xzvf cmake-3.3.2.tar.gz  
    // 進入到cmake文件夾中執行引導命令
    cd cmake-3.3.2 
    ./bootstrap
    // 執行make
    gmake
    // 執行安裝(root權限)            
    make install   
 
2、安裝boost
    wget https://sourceforge.Net/projects/boost/files/boost/1.62.0/boost_1_62_0.tar.gz
    tar -zxvf boost_1_62_0.tar.gz  
    cp -r boost_1_62_0 /usr/local/boost
 
3、利用ibd文件恢復數據庫
1.在新庫裏面建一個表 表結構須要和要恢復的表結構一致
 
CREATE TABLE `xxx` (
  `id` int(32) NOT NULL AUTO_INCREMENT ,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
 
2. 移除表空間ALTER TABLE xxx DISCARD TABLESPACE;
 
3. 將ibd文件移至數據庫文件下,我這裏路徑是/var/lib/mysql/test2/。
 
4. 將ibd文件權限放開 chmod 777 /var/lib/mysql/test2/xxx.ibd
 
5. 導入表空間 ALTER TABLE xxx IMPORT TABLESPACE;
相關文章
相關標籤/搜索